tttttt@@@@@@ 发表于 2023-6-9 19:23:16

指针数组

对于指针数组如int*p;与指针和数组的联系与区别,以及用法怎样

isdkz 发表于 2023-6-9 19:23:17

int *p; 这行代码声明了一个指针数组,包含10个指针,每个指针都指向一个整数。与数组和指针的联系与区别如下:

1. 联系:这都涉及到数组和指针的概念。数组是一种数据结构,可以存储一系列相同类型的数据。指针是一种特殊的变量,其值为另一个变量的地址。

2. 区别:这里的"指针数组"是一个数组,其元素是指针。而数组指针是一个指针,它指向一个整个数组。也就是说,"指针数组"是多个指针组成的集合,可以指向多个不同的变量或对象。而数组指针只能指向一个数组。

使用指针数组的基本方式如下:

1. 初始化:你可以在声明指针数组时初始化它,就像你可以初始化任何其他类型的数组一样。例如:
int a = 0, b = 1, c = 2;
int *p = {&a, &b, &c}; // 初始化指针数组,让数组的元素分别指向a, b, c

2. 访问:你可以通过数组索引来访问指针数组中的元素(指针),然后使用解引用运算符(*)来获取该指针指向的值。例如:
int a = 0, b = 1, c = 2;
int *p = {&a, &b, &c};
printf("%d", *p); // 输出0,a的值
printf("%d", *p); // 输出1,b的值
printf("%d", *p); // 输出2,c的值

3. 赋值:你可以修改指针数组中的指针所指向的值,或者改变指针本身指向的地址。例如:
int a = 0, b = 1, c = 2, d = 3;
int *p = {&a, &b, &c};
*p = 5; // 修改a的值为5
p = &d; // 将第二个指针指向d
页: [1]
查看完整版本: 指针数组