------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
C中比较常见的并且我容易遗忘的基础知识点,主要是字符串的相关知识。
1.字符串的初始化形式
char name[8] = "it";
char name2[8] = {'i', 't', '\0'};
char name3[8] = {'i', 't', 0};
char name4[8] = {'i', 't'};
注意: char name5[] = {'i', 't'}; 不算是一个字符串(只能说是一个字符数组)
2. \0的ASCII码值是0
它的作用
1.字符串结束的标记
2.printf("%s", name2); 会从name2这个地址开始输出字符,直到遇到\0为止
3.strlen函数
计算字符串长度,strlen函数声明在string.h文件中
1.计算的是字符数,并不是字数。一个汉字算作3个字符
2.计算的字符不包括\0
3.从某个地址开始数字符的个数,直到遇到\0为止
4.字符串数组
字符最后面没有/0.
char name[ ] = "jack";
char name1[ ] = "rose";
char name2[ ] = "jim";
char name3[ ] = "jake";
char names[2][10]= {"jack", "rose"};
//printf("%s\n", names[0]); 输出jack
//printf("%c\n", names[0][3]); 输出k
char names2[2][10] =
{
{'j', 'a', 'c', 'k', '\0'},
{'r', 'o', 's', 't', '\0'}
};
5.指针与字符串
定义字符串的2种方式
1> 利用数组
char name[] = "itcast";
* 特点:字符串里面的字符是可以修改的
* 使用场合:字符串的内容需要经常修改
2> 利用指针
char *name = "itcast";
* 特点:字符串其实是一个常量字符串,里面的字符是不能修改
* 使用场合:字符串的内容不需要修改,而且这个字符串经常使用
6指针和数组
1.数组元素的访问方式
int ages[5];
int *p;
p = ages;
1> 数组名[下标] ages[i]
2> 指针变量名[下标] p[i]
3> *(p + i)
2.指针变量+1,地址值究竟加多少,取决于指针的类型
int * 4
char * 1
double * 8
3. 指针变量p指向了数组的首元素
p = &ages[0];
数组名就是数组的地址,也是数组首元素的地址
p = ages;
4.指针与数组的对应关系
p ---> &ages[0]
p + 1 ---> &ages[1]
p + 2 ---> &ages[2]
p + i ---> &ages[i]