数组的引用笔记

数组必须先定义,后使用;

特别注意:只能逐个引用数组元素(通常借助循环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]。

 

posted @ 2021-12-11 12:42  iZJ"Qq4577105  阅读(183)  评论(0编辑  收藏  举报