猿问

a究竟是怎么存储的,怎么会出现a和*a是一样的呢?

#include <stdio.h>int main(int argc, const char *argv[]){	int a[2][3] = {
		{1, 2, 3}, 
		{4, 5, 6}
	}; 
	
	printf("%p\n", a);	printf("%p\n", *a);	return 0;
}

打印的结果是,一样的指针.

a究竟是怎么存储的,怎么会出现a和*a是一样的呢?


jeck猫
浏览 150回答 2
2回答

明月笑刀无情

int&nbsp;a[10]这里的数组其实是个指针,a就是指向第一个元素,如果那个元素是一个数组的话(多维数组),也就是说a指向一个指针

慕仙森

int&nbsp;a[1][2][3]&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1,&nbsp;2,&nbsp;3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4,&nbsp;5,&nbsp;6 &nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;printf("%p\n",&nbsp;a);&nbsp;&nbsp;&nbsp;&nbsp;printf("%p\n",&nbsp;*a);&nbsp;&nbsp;&nbsp;&nbsp;printf("%p\n",&nbsp;**a);&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;***a);&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;其中a,*a,**a都是一样的. 最后一行打印的是1
随时随地看视频慕课网APP
我要回答