整理自《C陷阱与缺陷》。
数组注意点:
1.C数组中只有一维数组,数组的大小必须在编译期作为常数确定。但C数组的元素可以是任何类型的对象,当然也可以是另一个数组,所以“仿真”出一个多维数组。(不太明白为什么要强调只有一维数组,难道“模拟”出来的多维数组和真正的多维数组不一样?)
2.对于一个数组,我们只能够做两件事:确定该数组大小[sizeof(数组名)],以及获得指向该数组下标为0的元素的指针
数组名:
指向该数组下标为0的元素的指针。
数组下标:
任何一个数组下标运算都等同于一个对应的指针运算。
即a[i]=*(a+i)=*(i+a)=i[a] (后种写法绝不推荐)
例:
#include <stdio.h>
void main()
{
int a[20]={0};
*a=66;
printf("a[0]: %d \n",a[0]);
printf("0[a]: %d \n",0[a]);
return;
}
结果为:
a[0]: 66
0[a]: 66
写法很有趣。