C语言字符数组初始化
2013-09-17 00:30
302 查看
(1)char str[10]={'I','','a','m','','h','a','p','p','y'};
即把10个字符分别赋值给str[0]到str[9]10个元素;
如果花括号中提供的字符个数大于数组长度,则按语法错误处理;
若小于数组长度,则只将这些字符数组中前面赋值,其余的元素自动定位空字符(即'\0');
若刚好相等,可以使用strlen等函数,此时会自动在最后加上'\0'(自测试)。
(2)char str[]={"I am happy"}; <==> char str[]={'I','','a','m','','h','a','p','p','y','\0'};
可以省略花括号,如下:char str[]="I am happy"; 不等价与char str[]={'I','','a','m','','h','a','p','p','y'};
注意1:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于
字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是
错误的:
char str[11];
str="I am happy";
而对字符指针变量,采用下面方法赋值:
char* a;
a="I love China";
或者是char* a="I love China"; 都可以
(3)字符数组并不要求它的最后一个字符为'\0',甚至可以不包含'\0',像下面这样写是完全合法的:
char str[5]={'C','h','i','n','a'};
http://hi.baidu.com/cumtdream/item/d2c50eed120ddabf2e140bdb
http://wenku.baidu.com/view/de788bf34693daef5ef73dd7.html
即把10个字符分别赋值给str[0]到str[9]10个元素;
如果花括号中提供的字符个数大于数组长度,则按语法错误处理;
若小于数组长度,则只将这些字符数组中前面赋值,其余的元素自动定位空字符(即'\0');
若刚好相等,可以使用strlen等函数,此时会自动在最后加上'\0'(自测试)。
(2)char str[]={"I am happy"}; <==> char str[]={'I','','a','m','','h','a','p','p','y','\0'};
可以省略花括号,如下:char str[]="I am happy"; 不等价与char str[]={'I','','a','m','','h','a','p','p','y'};
注意1:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于
字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是
错误的:
char str[11];
str="I am happy";
而对字符指针变量,采用下面方法赋值:
char* a;
a="I love China";
或者是char* a="I love China"; 都可以
(3)字符数组并不要求它的最后一个字符为'\0',甚至可以不包含'\0',像下面这样写是完全合法的:
char str[5]={'C','h','i','n','a'};
http://hi.baidu.com/cumtdream/item/d2c50eed120ddabf2e140bdb
http://wenku.baidu.com/view/de788bf34693daef5ef73dd7.html
相关文章推荐
- C语言字符数组的初始化
- C语言中字符数组和字符串定义和初始化的问题
- C语言字符数组的初始化
- C语言中字符数组的初始化与赋值
- C语言字符数组的初始化
- C语言结构体数组内带字符数组初始化和赋值
- C语言中二维字符数组的定义和初始化
- C语言中strlen求字符串长度,求字符数组长度(空字符,数字0,字符0,数组部分初始化)
- C语言中二维字符数组的定义和初始化
- C语言中二维字符数组的定义和初始化
- C语言字符数组的定义与初始化
- C语言中字符数组的初始化与赋值
- C语言 字符数组初始化方式总结
- C语言字符数组的初始化
- C语言的字符数组(字符串)的定义与初始化
- C语言字符数组的初始化研究
- C语言指针问题,初始化,赋值,以及字符数组,字符串常量等问题
- C语言字符数组的初始化
- C语言之字符数组的初始化
- C语言中strlen求字符串长度,求字符数组长度(空字符,数字0,字符0,数组部分初始化)