关于字符串 字符数组 字符型指针的问题
2010-07-14 17:23
274 查看
谭浩强的《C程序设计》
关于字符串这么写的:
在C语言中,是将字符串作为字符数组来处理的,在C语言中规定了一个字符串结束标志‘/0’,
char c[ ] = "Hello world",最后一个字符是/0;即a[11]='/0';
sizeof(c) = 12; strlen(c) = 11;
sizeof是C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。strlen计算字符串长度,遇到/0就结束,strlen(const char *a)其实计算是a++,然后*a == /0就结束。sizeof(数组)是得到的是数组的长度,sizeof(指针)的到的是4(32位机器)。
char m[ ] = {48,6,0,4,7};
printf("m[0]:%c/n",m[0]);
a = strlen(m);
得到的结果:m[0]:0;a = 2;
48 6 0 4 7存放的数据,对应的是ASCII码,48对应的是字符‘0’,0对应的是NULL /0因此strlen(m) = 2;
注意放数据和字符的区别:存放数据的话即存对应的ASCII码,m[0] = 48与m[0] = '0'是相同的。
关于字符串这么写的:
在C语言中,是将字符串作为字符数组来处理的,在C语言中规定了一个字符串结束标志‘/0’,
char c[ ] = "Hello world",最后一个字符是/0;即a[11]='/0';
sizeof(c) = 12; strlen(c) = 11;
sizeof是C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。strlen计算字符串长度,遇到/0就结束,strlen(const char *a)其实计算是a++,然后*a == /0就结束。sizeof(数组)是得到的是数组的长度,sizeof(指针)的到的是4(32位机器)。
char m[ ] = {48,6,0,4,7};
printf("m[0]:%c/n",m[0]);
a = strlen(m);
得到的结果:m[0]:0;a = 2;
48 6 0 4 7存放的数据,对应的是ASCII码,48对应的是字符‘0’,0对应的是NULL /0因此strlen(m) = 2;
注意放数据和字符的区别:存放数据的话即存对应的ASCII码,m[0] = 48与m[0] = '0'是相同的。
相关文章推荐
- 关于C语言字符数组、字符串和指针的相关问题
- 关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存
- 关于memcpy拷贝结构体、结构体数组到字符数组(字符串)的问题
- 关于字符串类型与字符数组(指针)
- 关于字符数组与字符串指针的区分
- c语言字符指针数组经典,此后不必再担心字符串问题.
- 关于数组指针,指针数组和字符串数组的一些问题
- 关于字符串,字符数组 ,局部和全局地址分配问题
- C/C++字符串,字符数组,字符指针及其相互静态拷贝与追加的安全问题解决方案(1)
- 关于函数字符数组调用的问题(没有搞清指针的概念)
- 关于字符数组、字符串、字符指针、字符指针数组
- 关于c语言中的字符数组和字符串指针
- 关于数组指针,指针数组,双重数组,二维矩阵,字符串数组,双重字符指针的理解
- C/C++字符串,字符数组,字符指针及其相互静态拷贝与追加的安全问题解决方案(2)
- 关于字符串与字符数组的一些小问题
- c语言字符指针数组经典,此后不必再担心字符串问题.
- 关于字符指针和字符数组初始化的问题
- 二维数组、字符数组、指针数组涉及字符串和具体元素问题
- C常见问题之字符串数组和字符指针数组问题
- 关于结构体里面的字符串指针输出出现乱码的问题与结构体数组作为参数传值的问题