- C不允许把数组作为一个单元给另一个数组赋值,而且除了初始化之外也不允许使用花括号列表的形式赋值。如//int a[6]={1,2,3,4,5,6};int b[6]; a[6]=b[6];和a=b;(这都是不允许的),而且b[6]={1,3,4,5};(不起作用)
-
另外关于数组下标越界可能会导致程序改变其他变量的值,有些也会导致程序异常终止。这是因为越界的那个数组元素的地址是不确定的,所以关于它的引用有可能导致一些意外的事情。C是不检查边界的,这样C程序可以运行的更快。所以我们编写程序的时候要注意数组的元素是从0开始的,最好在声明数组的时候使用符号常量来表示数组的大小。
如:#define SIZE 5
int main()
{
int a [SIZE];
for(i=0;i<SIZE;i++)
a[i]=i;
...................................................
}
3.对于多维数组的理解可以把他想象为“行”和“列”,也可以把它想象为树状图,即含有的关系,拿二位数组来说,它的数组名含有两个元素,这对于我们日后理解指针与多维数组有很大的帮助。4. 指针在某种程度上把程序员想要表达的指令以更接近机器的方式表达。数组表示法其实是变相的在使用指针,如:int d[4]; d+2==d[2](相同的地址),*(d+2)==d[2](相同的值)。既可以用指针表示数组名,又可以用数组名表示指针,又如:int a[3];int *p=a; 则 p[1]==a[1];5.如果指针做函数的形参,int sum(int *p)可以写成sum(int p[ ])而且也只有在函数原型或函数定义头中可以这样替换。