
【C语言语法】这两种数据类型有什么不同?
2个回答
展开全部
struct A * 这个是指向结构体类型struct A的指针指针类型。
struct A(*)[10]是一个指向有10个struct A元素的数组的指针,这是一个指向一维数组的指针类型,该一维数组的元素类型是struct A
struct A(*)[10]是一个指向有10个struct A元素的数组的指针,这是一个指向一维数组的指针类型,该一维数组的元素类型是struct A
追问
“该一维数组的元素类型是struct A ”是不是说,该一维数组的每个成员都都存放着一个地址,每个地址都指向一个struct A类型的变量。
追答
不是,该一维数组的元素是struct A类型的。这个定义比较晦涩如果写成这样就比较好懂了:
typedef struct A newstyle;/*结构体struct A的别名*/
newstyle (*arr)[10];/*定义指向一维数组的变量arr,数组大小为10,数组元素为newstyle类型,如果去掉arr就是类型了*/
其实这个和int (*arr)[10]差不多,只是元素类型不一样。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询