2. 指针代码实例

印度小哥讲解的指针, 真的很好, 这个附上链接:
https://www.bilibili.com/video/BV1bo4y1Z7xf/?spm_id_from=333.999.0.0

1. 指针代码

#include <stdio.h>

int main() {
	int a;
	int* p;
	a = 10;
	p = &a; //p中存放的是a的地址.
	printf("%p\n", p);  // 这里打印的是p中存放的地址, 也就是“a”的地址.
	printf("%d\n", *p); // 这里打印的是“p”中地址指向的“a”的值.
	printf("%p\n", &a); // 这里打印的是“a”的地址.
}

2. 指针的数学运算

下面这段代码说明了对应的 指针变量 进行相加减都是按照自己的方式进行的,
比如:指针变量是 int类型, double类型, 这样对应的 + 1, - 1 都是对应的
int, double 类型变量的大小:4字节, 8字节.

其实从这里也能看出来, 这里的指针变量中, 存储的还是一个“抽象的地址(地址的抽象)”,
不然对应的地址 + 1, 应该是真实的地址 + 1, 而不是“加上一个对应的数据类型的值”.

int main() {
	int a;
	int* p;
	a = 10;
	p = &a;
	printf("p的地址是:%p\n", p);
	printf("p的值是:%d\n", *p);

	int b = 20;           
	*p = b;                   // 这段操作表示实现了将“a”的值修改为20, 但是“p”存储的地址还是“a”.
	printf("p的地址是:%p\n", p);
	printf("p的值是:%d\n", *p);
}







int main() {
	int a = 10;
	int* p = &a;

	printf("p中存储的地址为:%p\n", p);
	printf("一个整型变量占据的字节大小为:%zu\n", sizeof(int));
	printf("(p + 1)中存储的地址为:%p\n", p + 1);


	printf("p中存储的地址所指向的值为:%d\n", *p);
	printf("(p + 1)中存储的地址所指向的值为:%d\n\n\n", *(p + 1));

	double b = 32.32;
	double* pb = &b;

	printf("pb中存储的地址为:%p\n", pb);
	printf("一个双精度浮点型变量占据的字节大小为:%zu\n", sizeof(double));
	printf("(pb + 1)中存储的地址为:%p\n", pb + 1);


	printf("pb中存储的地址所指向的值为:%lf\n", *pb);
	printf("(pb + 1)中存储的地址所指向的值为:%lf\n", *(pb + 1));
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值