当前位置: 首页 > article >正文

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

C语言指针理解

      • 1. 指针指的是啥。
      • 2. int * p、int* p的区别。
      • 3. 指针*p的使用。

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;
}

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


http://www.kler.cn/a/7026.html

相关文章:

  • 在 CentOS 7 上安装 MinIO 的步骤
  • 「Mac玩转仓颉内测版14」PTA刷题篇5 - L1-005 考试座位号
  • 解决 IDEA 修改代码重启不生效的问题
  • 3356. 零数组变换 Ⅱ
  • Jenkins下载安装、构建部署到linux远程启动运行
  • 技术理论||02空中三角测量
  • Baklib支招:如何做好内部知识库?
  • 【从零开始学习 UVM】9.1、UVM Config DB —— UVM Resource database 资源库详解
  • UVM学习笔记2——验证基础知识(验证计划、验证方法)
  • 软件产品登记的材料
  • 一文总结 Shiro 实战教程
  • 金丹四层 —— 详解自定义类型
  • JAVA基础
  • 副词也可以做定语
  • 9.网络爬虫—MySQL基础
  • 中华好诗词(九)
  • linux系统编程(2)--Makefile
  • C++: Articles:Split a String
  • OpenResty+OpenWAF的WEB防护实战
  • Java程序设计——作业2循环
  • C++算法恢复训练之时间复杂度
  • 温度PID串级控制器在提高空气膜分离制氮产量中的应用
  • Vue3之插槽(Slot)
  • SpringBoot起步
  • 改进YOLO系列:YOLOv5s、YOLOv5m结合GHostv2轻量化设计,保持精度,计算量缩小40%
  • 记录--Canvas实现打飞字游戏