C语言中数组指针*a[]与a[]有啥区别?

如题所述

a[]普通的数组,存的每一个元素都是一个普通类型的变量,比如int;*a[]是数组指针,它的每个变量都是指针,比如int类型,每个成员都是int *指针,很多指针元素组成一个数组,而不是普通的变量类型。

就好像普通家庭里组成的成员都是普通人;国务院里组成的成员都是大官,牛逼的人,呵呵 ;指针算是牛逼的人,但终究都是平民演变而成的,含义都是一样的
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-03
第一个a中有2个符号,所以要看优先级,看限于谁结合。已知[]比*优先
所以第一个a先与[]结合,所以a是一个数组,数组中的元素都是指针

a[]就单单表示数组。
例子:
char *a[]; //a是数组,元素都是char * (即指针)
char a[]; //a是数组,元素都是char (即字符)追问

为啥A不对,C对呢

追答

什么A不对~~~你发题了??

追问

嗯,图片

追答

你没有发图好不·~~~

追问

刚刚发送失败😁等下

收到没

追答

82题?
A:char ss[6][22]; // 定义二维数组。
ss[1]是地址常量,注意,是常量,常量不能被赋值,所以A错
C:char *ss[6]; //定义一个数组,元素都是指针(注意,是指针,指针是变量,存放地址值)

//所以C是对的·~

是让你选择错误的啊,选A没错·~

追问

谢了啊

本回答被提问者采纳
第2个回答  2015-01-20
*a[] 这个为指针数组,int *a[5];就定义了一个大小为5的指针数组,a[0]-a[4]可以指向不同的int;
a[]这个就是一个普通数组。
相似回答