c和c++中a[]的见解

来源:互联网 发布:index是什么意思c语言 编辑:程序博客网 时间:2024/06/03 18:12
#include <iostream>
#include <stdlib.h>
using namespace std;


int main(void)
{
int a[] = {1, 2, 3};
int b[] = {4, 5, 6, 7, 8, 9, 0};
cout << sizeof(a) << endl; 
for(int i = 0; i < 7; i++)
{
a[i] = b[i];
}
for(int i = 0; i < 7; i++)
{
cout <<a[i]<< endl;
}
cout << sizeof(a) << endl; 
system("pause");
return 0;

}

输出

12

4

5

6

7

8

9

0

12

没有报错, 但是数组越界了, 这就证明了 a[]的长度在初始化时已经确定了!

初始为3个 4*3 = 12

最后虽然输出了超出3个元素的数据, 而且正确显示, 但是,数组越界了!


重点:

也就是说, a[]的大小也是一开始就确定的, 不过是在运行期间决定的, 不是在编译期,

一经确定便不会再改变! 这点一定要注意,不然数组越界了你还不知道怎么回事


建议:

我的建议是尽量直接写a[10] a[N], 传参数时可以用a[]当形参

其他时候尽量弃用。

原创粉丝点击