C语言 | C/C++不能给数组整体赋值?

给数组赋值有两种情况:
(1)声明的同时初始化
int a[5]={1,2,3,4,5};
(2)声明后再初始化
int a[5];
a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;

注意!在c、c++中不允许将数组声明和整体初始化分开!
如:
int a[5];
a[5]={1,2,3,4,5}
这样做会导致语法错误!
错误分析:由于数组下标从零开始,a[5]根本就不存在!
就算存在,此时的a[5] 也只代表它自己!根本不能代表数组整体!

因为C/C++中,数组名就是数组第一个元素的地址,也就是一个常量指针,

比如,int a[100] , b[100];
则a和b都是常量指针int*const a(其值肯定是不同的),

如果你执行a = b;那就是企图修改常量指针a的值,

而在C/C++里,任何常量都是不允许被修改的。
a[1]或*a才是a中第一个元素的内容。
 

上一篇:<数据库> Leetcode1511. 消费者下单频率


下一篇:Windows 添加按钮