简介
在 C 编程中,指针数组(array of pointers)是一种数组,其中每个元素都是指向其他数据类型(如 int、char、float 等)的指针。在本实验中,我们将学习如何访问整数指针数组和字符指针数组。
在 C 编程中,指针数组(array of pointers)是一种数组,其中每个元素都是指向其他数据类型(如 int、char、float 等)的指针。在本实验中,我们将学习如何访问整数指针数组和字符指针数组。
在这一步中,我们将访问一个整数指针数组。打开 ~/project/
目录下的 main.c
文件,并粘贴以下代码:
#include <stdio.h>
// 全局声明
const int MAX = 5;
int main() {
printf("\n\n\t\t==== 整数指针数组 ====\n\n\n");
int var[] = {10, 20, 30, 40, 50}; // 初始化一个整数数组(此处为 var)
int i = 0;
/*
ptr 是一个整数指针数组,即
它存储了每个数组元素的地址
*/
int *ptr[MAX];
for(i = 0; i < MAX; i++) {
/*
将每个数组元素的地址
赋值给 ptr 数组
*/
ptr[i] = &var[i];
}
for(i = 0; i < MAX; i++) {
/*
ptr[i] 存储了 var[i] 元素的地址。
因此,*ptr[i] 返回存储在 ptr[i] 位置的
元素的值
*/
printf("Value of var[%d] = %i\n\n", i, *ptr[i]);
}
printf("\n\n\t\t==== 程序结束 ====\n\n\n");
return 0;
}
该程序初始化了一个整数指针数组,并将每个数组元素的地址赋值给指针数组。然后,通过指针数组打印每个元素的值。
在这一步中,我们将访问一个字符指针数组。在上一步代码之后粘贴以下代码:
#include <stdio.h>
// 全局声明
const int MAX = 4;
int main() {
printf("\n\n\t\t==== 字符指针数组 ====\n\n\n");
char *names[] = {"Google", "Amazon", "Facebook", "Apple"}; // 初始化一个字符指针数组(此处为 names)
int i = 0;
for(i = 0; i < MAX; i++) {
printf("Value of names[%d] = %s\n\n", i, names[i]);
}
printf("\n\n\t\t==== 程序结束 ====\n\n\n");
return 0;
}
该程序初始化了一个字符指针数组,并将每个字符串的首字符地址赋值给指针数组。然后,通过指针数组打印每个元素的完整名称。
在这一步中,我们将编译并运行程序。打开终端并导航到 ~/project/
目录。输入以下命令以编译程序:
gcc main.c -o main
编译成功后,输入以下命令以运行程序:
./main
该命令将执行程序并在终端显示输出:
==== 整数指针数组 ====
Value of var[0] = 10
Value of var[1] = 20
Value of var[2] = 30
Value of var[3] = 40
Value of var[4] = 50
==== 字符指针数组 ====
Value of names[0] = Google
Value of names[1] = Amazon
Value of names[2] = Facebook
Value of names[3] = Apple
==== 程序结束 ====
#include <stdio.h>
// 全局声明
const int MAX = 5;
int main() {
printf("\n\n\t\t==== 整数指针数组 ====\n\n\n");
int var[] = {10, 20, 30, 40, 50}; // 初始化一个整数数组(此处为 var)
int i = 0;
/*
ptr 是一个整数指针数组,即
它存储了每个数组元素的地址
*/
int *ptr[MAX];
for(i = 0; i < MAX; i++) {
/*
将每个数组元素的地址
赋值给 ptr 数组
*/
ptr[i] = &var[i];
}
for(i = 0; i < MAX; i++) {
/*
ptr[i] 存储了 var[i] 元素的地址。
因此,*ptr[i] 返回存储在 ptr[i] 位置的
元素的值
*/
printf("Value of var[%d] = %i\n\n", i, *ptr[i]);
}
printf("\n\n\t\t==== 字符指针数组 ====\n\n\n");
char *names[] = {"Google", "Amazon", "Facebook", "Apple"}; // 初始化一个字符指针数组(此处为 names)
i = 0;
for(i = 0; i < MAX; i++) {
printf("Value of names[%d] = %s\n\n", i, names[i]);
}
printf("\n\n\t\t==== 程序结束 ====\n\n\n");
return 0;
}
在本实验中,我们学习了如何访问整数指针数组和字符指针数组。指针数组是一种数组,其中每个元素都是指向另一种数据类型的指针。我们学习了如何初始化指针数组、如何将数组元素的地址赋值给指针数组,以及如何使用指针数组访问数组元素。