C语言数组指针VS指针数组

简而言之,数组指针是一个指针,指针数组是一个数组。

1.数组指针:数组名称就是一个指向数组中第一个元素的常量指针,使用数组名作为常量指针是合法的,如下代码所示:

include<stdio.h>

int main(){

int array[3] = {10, 20, 30};

printf("数组名称指向的地址值为%d\n", array);
printf("数组第一个元素值为%d\n", *array);

return 0;

}
结果为:

数组名称指向的地址值为6487568
数组第一个元素值为10


2.指针数组:数组中的每一个元素都是一个指针,如下代码定义了一个指向整数的指针数组:

include<stdio.h>

int main(){

int var[3] = {10, 20, 30};

int *ptr[3]; // 定义指针数组

for (int i=0; i<3; i++){
ptr[i] = &var[i]; // 将var数组每个元素的地址赋值给ptr数组
printf("ptr[%d] = %d\n", i, ptr[i]); // 打印ptr数组保存的地址值
}

return 0;
}

结果如下:

ptr[0] = 6487552
ptr[1] = 6487556
ptr[2] = 6487560

posted @ 2022-08-11 11:33  Destiny!  阅读(60)  评论(0)    收藏  举报