int * p、int * p 、int* p的区别及 指针*p的使用分析

指针是C语言中的一种数据类型,用于存储内存地址。文章解释了如何定义和使用指针,例如`int*p=&score;`,其中`p`存储了变量`score`的地址,`*p`则表示该地址指向的内容。通过指针,可以间接访问和修改变量的值,即使变量本身可能发生变化。示例代码展示了如何声明、初始化指针以及通过指针访问变量的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 指针指的是啥。

指针也是一种C语言的数据类型,就像int、char这样。不过int存放的是整型的数据,char存放的是字符型的数据,而指针,存放的是内存地址。

我们通常这样去定义一个变量score:

int score;

此时,score已经被分配到了一个4字节的内存地址。

接着,我们通过输入,给变量score赋值,

scanf("%d", &score);

注意到了吗?score前面还有个地址操作符&,这表示:将所输入的XXX存放到score所在内存地址的内容上。

你输入的是啥,那么score就是啥。

如果我们后期更改了score的值,score所占的内存地址也是不变的。就像无论你怎么装修你的新家,里面放的是真皮沙发,还是布艺沙发,你家的门牌号还是不变的。

score = 100; // score的内存地址还是不变滴

早先的程序猿们发现了这个神气的特性,脑瓜子灵机一动:只要我获取到某个变量所被分配的内存地址,那么,即使该变量就像孙猴子一样七十二变,也逃不出我的手掌心了。

于是,为了更好的存储变量的内存地址,指针诞生了。

// 定义一个int类型的指针变量p
int *p = &score;
  	&score:  就是变量score被分配到的内存地址
	p本身:  score的内存地址
 	*p: p所存储的内存地址指向的内容,这里即score

2. int * p、int* p的区别。

int * p、int * p 、int* p三者是一样的,都指的是创建一个int类型的指针变量p。

3. 指针*p的使用。

#include "stdio.h"

int main() {
	int a = 1; 
	int *p = &a; // 定义一个int类型指针P,用来存放int类型的变量a的地址
	int q = *p; //  定义一个获得P指针存放的地址所对应的内容 
	
	printf("a = %d\n", a);  // 输出a的值
	printf("p = %d\n", p);  // 输出p所存放的内容 ——  即a的地址
	
	printf("*p = %d\n", *p);  // 输出p所存放的内容(即a的地址)所对应的值内容
	printf("q = %d\n", q);  // 输出p所存放的内容(即a的地址)所对应的值内容
	return 0;
}

结果:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值