用指针指向结构体中的某一个元素的方法

#include <stdio.h>

struct St_Test{
	int t1;
	int t2;
	int t3;
	int t4;
};

int main() {
	struct St_Test St_Test_Example;

	int *p ;
	p = (int*) &St_Test_Example;

	St_Test_Example.t1 = 11;
	St_Test_Example.t2 = 22;
	St_Test_Example.t3 = 33;
	St_Test_Example.t4 = 44;

	printf("%d\n",*(p+0));
	printf("%d\n",*(p+1));
	printf("%d\n",*(p+2));
	printf("%d\n",*(p+3));

}

输出

11
22
33
44
结构体指针可以指向与其结构体类型相同的结构体变量。比如,如果我们有一个结构体类型为struct STUDENT的结构体变量,我们可以定义一个指向结构体类型的指针变量,如struct STUDENT *ptr。这样,指针变量ptr就可以指向结构体变量。\[2\]另外,结构体指针也可以指向结构体数组的第一个元素。比如,如果我们有一个结构体数组stu,其个元素都是struct STU类型的结构体变量,我们可以定义一个指向结构体数组的指针变量,如struct STU *p = stu;。这样,指针变量p就指向结构体数组的第一个元素,即stu\[0\]。\[3\]通过移动指针的方式,我们可以访问结构体数组的其他元素,如p+1指向stu\[1\]的首地址,p+2指向stu\[2\]的首地址,以此类推。需要注意的是,结构体指针变量和结构体数组的结构体类型必须相同。 #### 引用[.reference_title] - *1* [【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针指向其他结构体](https://blog.csdn.net/weixin_42929607/article/details/115907043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [指向结构体变量的指针](https://blog.csdn.net/qq_41608601/article/details/107283125)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值