数组的引用笔记
数组必须先定义,后使用;
特别注意:只能逐个引用数组元素(通常借助循环for),不能一次引用整个数组。数组元素的引用与同类型的一般变量使用方式一样。
例 int a[10];
printf(“%d”,a); //(这是不合法的)
Q:就是要输出这个数组,为什么这样不行?
A:a代表数组首地址,你要输出a地址里的内容,不是把地址输出。
又e.g:
1 //题目:对4个整数赋值并求和(运用函数和数组) 2 # include 3 # define N 4 //一改全改 4 void sort(int a[N]); //全局声明函数 5 int main(){ 6 int i,num[N]; 7 printf("请输入十个整数:"); 8 //对数组各元素赋值 9 for(i=0;i<=N-1;i++) 10 scanf("%d",&num[i]); 11 //进行求和后输出 12 sort(num); 13 return 0; 14 } 15 // ------------------------分 隔 符---------------------------- 16 void sort(int a[N]){ 17 int i,sum=0; 18 for(i=0;i<=N-1;i++) 19 sum+=a[i]; 20 printf("它们的和为%d",sum); 21 }
运行结果为:
若把第12行改为sort( num[N] );这样会出现什么情况?
运行结果为:
Q:为什么换做这个就不能正常运行了呢?不是说数组不能一次性引用整体吗?
A: num是地址,num[N]这样写编译系统会认为是数组在索引为N的值。我们此时是传参,要传入num数组的地址,num就是这个数组的首地址,所以这样写,而不是某个元素num[N]。
作者QQ4577105