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!  阅读(29)  评论(0编辑  收藏  举报