C++字符数组的赋值
转载:blog.chinaunix/uid-26404201-id-3212247.html
定义⼀个数组char a[10];
怎么给这个数组赋值呢?
1、定义的时候直接⽤字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值怎么给数组赋值
char a[10]={'h','e','l','l','o'};
3、利⽤strcpy
char a[10]; strcpy(a, "hello");
易错情况:
1、char a[10]; a[10]="hello";//⼀个字符怎么能容纳⼀个字符串?况且a[10]也是不存在的!
2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a⼜指向数据区中的hello常量,这⾥的指针a出现混乱,不允许!
main()
{
char s[30];
strcpy(s, "Good News!"); /*给数组赋字符串*/ .
}
上⾯程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留出连续30个字节的区域, 并将第⼀个字节的地址赋给s。当遇到strcpy( strcpy 为Turbo C2.0的函数)时, ⾸先在⽬标⽂件的某处建⽴⼀个"Good News!/0" 的字符串。其中/0表⽰字符串终⽌, 终⽌符是编译时⾃动加上的, 然后⼀个字符⼀个字符地复制到s所指的内存区域。因此定义字符串数组时, 其元素个数⾄少应该⽐字符串的长度多1。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。