#include <stdio.h>
int main()
{
int f=1,g=2,h=3;
//第一种初始化赋值且下标必须是自然数
int a[3]={1,2,3};
printf("%d\t%d\t%d\n",a[0],a[1],a[2]);
printf("数组a第一个元素的地址为:%p等于数组的地址为:%p",&a[0],a);
//上面也可以改写成为:
printf("数组a第一个元素的地址为:%p等于数组的地址为:%p",&a[0],&a);
//&a和a是相等的,对于数组名虽然地址常量,但由于数组的特殊性,可以对数组名&运算,其结果还是数组的首地址,设计程序时建议不要这样使用
//第二种初始化赋值,数组元素个数可以<=数组下标
int b[4]={1,2,3};
printf("%d\t%d\t%d\t%d\n",b[0],b[1],b[2],b[3]);
//第三种初始化赋值,可以省略数组长度
int c[]={1,2,3};
printf("%d\t%d\t%d\n",c[0],c[1],c[2]);
//第四种初始化并单独赋值
int d[3];
d[0]=1;
d[1]=2;
d[2]=3;
printf("%d\t%d\t%d\n",d[0],d[1],d[2]);
//变量作为下标并正确初始化赋值的形式
int e[h];
e[0]=1;
e[1]=2;
e[2]=3;
printf("%d\t%d\t%d\n",e[0],e[1],e[2]);
return 0;
} |
|