关于c中对数组赋值的一个问题

来源:互联网 发布:python range 倒序 编辑:程序博客网 时间:2024/05/19 09:03

数组赋值我总结一下吧也就三种,那char的来举例:

 

定义的时候直接赋值.

1:char a[20] = "Hello World!";

 

2: char a[20];

   strcpy(a, "Hello World!");

 

3:char a[20] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!'};

 

常见错误赋值方式:

 

1:char a[20];

   a = "Hello World!";

 

原因:首先定义了个长度为20的char数组,也就是在运行时候,在栈里面开辟20个连续的单元,a为着20个单元的首地址。

  其次,再堆里面一个字符串"Hello World!",把这个字符串的地主赋值给了a,而a之前是连续20个单元的地址。所以这个时候混乱了,不能这么赋值的。

 

原创粉丝点击