结构体数组取首地址的方法

如何对一个结构体数组取首地址? 以结构体二维数组为例:
用c-free示例。
结构体数组取首地址的方法_第1张图片
结构体数组取首地址的方法_第2张图片
可见,对于一个结构体一维数组a[2]

  • &a
  • &a[0]
  • &a[0].age

都可以表示结构体首地址。

拓展:
对于一个结构体二维数组
结构体数组取首地址的方法_第3张图片
结构体数组取首地址的方法_第4张图片
可见,对于一个结构体一维数组a[2][3]

  • &a
  • &a[0]
  • &a[0][0]
  • &a[0][0].age

都可以表示结构体首地址。

我们可以依次规律推导N维结构体数组

结构体二维数组测试代码:
#include “stdio.h”

typedef struct _student_t
{
	int age;
	int high;
	char timer[30];
}student_t;
int main(void)
{
	student_t a[2];
	printf("address:%d,%d,%d\r\n",&a,&a[0],&(a[0].age));
	return 0;
}

注意:这里我还测试了一种情况,即直接打印结构体名称a,但发现也能表示结构体地址,这里应该是c-free支持结构体名为结构体地址这种写法,但其应该不具有通用性。所以我们表示结构体首地址还是以上述为准。
结构体数组取首地址的方法_第5张图片
结构体数组取首地址的方法_第6张图片

你可能感兴趣的:(C,c语言)