C-指针数组
时间:2020-02-23 14:31:52 来源:igfitidea点击:
在本教程中,我们将学习C编程语言中的指针数组。
创建变量
在本教程中,我们将创建四个整数变量。
//integer variables int num = 10; int score = 12; int run = 123; int goal = 3;
我们可以在内存中表示如下。
我们假设一个整数值占用2个字节,因此,每个变量在内存中占用2个字节的空间。
这些存储空间填充有整数值,该值未在上图中显示。
指针数组
因为我们有四个整数指针,所以我们可以创建四个独立的整数指针变量,如“ptr1”、“ptr2”、“ptr3”和“ptr4”。
或者,我们可以创建一个指针ptr变量的单个整数数组,该数组将指向四个变量。
在下面的示例中,我们将创建一个大小为4的整数指针ptr数组。
//array of integer pointers int *ptr[4];
将地址分配给指针数组
此步骤类似于任何其他指针变量。
我们使用"&"运算符的地址获取变量的地址,然后将该地址保存在指针数组中。
在下面的示例中,我们将整数变量num,score,run和goal的地址保存在指针变量ptr的整数数组中。
//assign address of variables to ptr ptr[0] = # ptr[1] = &score; ptr[2] = &run; ptr[3] = &goal;
假设整数地址值占用2个字节,则每个指针元素的大小为2个字节。
因此,整数指针" ptr"的数组占用的内存空间为8000至8007,即总共8个字节(每个元素2个字节)。
整数指针" ptr"数组的第一个元素保存" num"变量的地址。
同样,整数指针" ptr"数组的第二个元素保存" score"变量的地址。
" ptr"的第三个元素保存"运行"变量的地址,而" ptr"的第四个元素保存"目标"变量的地址。
通过指针数组访问变量的值
要通过指针数组访问变量的值,我们必须在" *"运算符的地址处使用该值。
//print value printf("num: %d\n", *ptr[0]); printf("score: %d\n", *ptr[1]); printf("run: %d\n", *ptr[2]); printf("goal: %d\n", *ptr[3]);
完整的代码
#include <stdio.h> int main(void) { //integer variables int num = 10; int score = 12; int run = 123; int goal = 3; //array of integer pointers int *ptr[4]; //assign address of variables to ptr ptr[0] = # ptr[1] = &score; ptr[2] = &run; ptr[3] = &goal; //print value printf("num: %d\n", *ptr[0]); printf("score: %d\n", *ptr[1]); printf("run: %d\n", *ptr[2]); printf("goal: %d\n", *ptr[3]); return 0; }
num: 10 score: 12 run: 123 goal: 3