第九章——数组 第二节——一维数组元素的应用

第九章——数组 第二节——一维数组元素的应用

亓翎_Re-Tikara Lv5

一维数组的引用规定

  • 数组必须先定义,后使用
  • 只能逐个引用数组元素,不能整体引用
  • 对于字符数组可以整体输入输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>

int main() {
// 示例1:整型数组逐个使用
int numbers[3];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;

printf("整型数组元素:\n");
printf("numbers[0] = %d\n", numbers[0]);
printf("numbers[1] = %d\n", numbers[1]);
printf("numbers[2] = %d\n", numbers[2]);

// 示例2:字符数组整体使用
char name[20];
printf("\n请输入您的姓名:");
scanf("%s", name); // 注意:字符数组作为参数时不需要&
printf("您好,%s!\n", name);

return 0;
}
  • 数组元素的表示形式:数组名[下标]
    • 其中:下标可以是常量或者整型表达式

一维数组的引用方法

通过数组名引用

1
2
int a[5] = {1, 2, 3, 4, 5};
printf("%d\n", a[0]);

通过数组的首地址引用元素

  通过间接访问运算符*:引用地址所在存储单元。

1
2
a=&a[0]
*&a[0]=*(a+0)=*a

  例如:以下语句的功能是逐个输出a数组元素中的值

1
2
3
4
5
for(k=0;k<10;k++)
printf(“%d”,*(a+k));
// 等价于
for(k=0;k<10;k++)
printf(“%d”,a[k]);

通过指针引用一维数组元素

1
2
3
4
5
6
7
8
9
float array[10],*p,k;
p=a ;

for(k=0;k<10;k++)
printf(“%4d”,*(p+k));

// 没有移动指针,等价于
for(k=0;k<10;k++)
printf(“%4d”, a[k]);

.png

用带下标的指针变量引用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int *p,a[10],i;
p=a;

// 可以用以下三种表示a[i]的地址
&a[i]
a+i
p+i

// 也可以用四种表达式来表示数组元素a[i]

a[i]
*(p+i)
*(a+i)
p[i]

注意

  p[i]和 a[i]均可表示数组中的第i个元素,但是a和p有着明显的区别,a是不可变的,而p中的地址却是可以改变的。

a=p , a++    错误
p++ , p=a , p=&a[i]  正确

.png

  • 标题: 第九章——数组 第二节——一维数组元素的应用
  • 作者: 亓翎_Re-Tikara
  • 创建于 : 2026-02-07 02:21:28
  • 更新于 : 2026-02-07 02:26:19
  • 链接: https://re-tikara.fun/Blog/posts/acc1ea0a/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。