网站首页 > 文章精选 正文
1、指针的定义和初始化
指针变量的定义: DataType *PName; DataType:可以是任意一种数据类型 PName:合法标识符 *:注意,*在变量定义的时候只是指针变量的标识,在其他位置的时候 标识取出指针指向空间内的值 &:取地址符,通过此符号可以取出变量的地址值 *:间接运算符,通过*可以取出指针指向空间内的数值 变量名:PName PName的类型:DataType *(除去变量名以外的就是变量的类型) PName指向空间存储的数据的类型:DataType
指针的初始化:
不初始化: DataType *PName; //被称为野指针,指向空间不确定,避免野指针 初始化为空: DataType *PName=NULL;//被称为空指针,空指针就是没有指向的指针 NULL其实就是(void *)0 初始化为变量的地址: DataType VarName=value; DataType *PName=&VarName;
2、指针的赋值和指针的使用
指针的赋值
指针的赋值: DataType VarName=value; DataType *PName=NULL; PName = &VarName; 提示: PName是指针变量,用来存储地址的值 *PName是取出PName指向空间内的值 指针可以改变指向
3、指针和数组的关系
数组名即为数组的首地址(同时也是数组首元素的地址),那么可以定义一个指针变量来接收数组的名字,这样指针就指向了数组,因此可以通过指针操作数组
4、指针的加减法(数据):
指针的加法操作(+n)相当于在元数据的地址的基础之上向后偏移(数据类型*n)个字节
指针的减法操作(-n)相当于在元数据的地址的基础之上向前偏移(数据类型*n)个字节
指针与指针之间的减法:
指针与指针的相减,获取的结果是两个数组元素之间的下表差
5、指针与字符串:
字符串字打印的时候只需要告知编译器字符串的首地址即可,原因是每一个字符串都有一个\0作为结尾
我们可以通过数组来存放字符串
数组的名字就是数组的首地址
指针又可以指向地址
所以指针可以直接通过字符串进行初始化
6、指针数组和数组指针
指针数组:
指针在前,数组在后,说明此类型为数据类型为指针的数组,即该类型为一个存放指针的数组
定义格式:
DataType *PName[len]={NULL};
数组指针:数组在前,指针在后,说明该类型为一个数组的指针,即一个指向数组的指针
DataType (*PName)[len]={NULL};
5、多级指针
存放指针的地址的变量
定义:
DataType VarName=value;
DataType *PName=&VarName;
DataType **PPName=&PName;
猜你喜欢
- 2025-06-30 个人C++笔记(2) 函数延伸(下)函数重载
- 2025-06-30 Qt开发经验小技巧181-185(qt开发程序)
- 2025-06-30 Linux编程Shell之入门—— for循环和for int循环详解
- 2025-06-30 Xi's Russia trip advances friendships, defends int'l equity: Chinese FM
- 2025-06-30 Int J Biol Macromol .|交联酶聚集体在分级共价有机骨架上的固定化:用于卤代醇不对称合成的高稳定酶纳米反应器
- 2025-06-30 C++ string/stack/list/deque/multiset 小结
- 2025-06-30 【 PLC知识分享】PLC中常说的位元件、字元件的区别
- 2025-06-30 Xi says China ready to work with Slovakia to address challenges, safeguard int'l justice
- 2025-06-30 模拟量万能公式,不管什么品牌的PLC都适用
- 2025-06-30 久坐引起的腰酸背痛,你以为站着就能解决?
- 06-30个人C++笔记(2) 函数延伸(下)函数重载
- 06-30Qt开发经验小技巧181-185(qt开发程序)
- 06-30Linux编程Shell之入门—— for循环和for int循环详解
- 06-30Xi's Russia trip advances friendships, defends int'l equity: Chinese FM
- 06-30Int J Biol Macromol .|交联酶聚集体在分级共价有机骨架上的固定化:用于卤代醇不对称合成的高稳定酶纳米反应器
- 06-30C++ string/stack/list/deque/multiset 小结
- 06-30【 PLC知识分享】PLC中常说的位元件、字元件的区别
- 06-30Xi says China ready to work with Slovakia to address challenges, safeguard int'l justice
- 最近发表
-
- 个人C++笔记(2) 函数延伸(下)函数重载
- Qt开发经验小技巧181-185(qt开发程序)
- Linux编程Shell之入门—— for循环和for int循环详解
- Xi's Russia trip advances friendships, defends int'l equity: Chinese FM
- Int J Biol Macromol .|交联酶聚集体在分级共价有机骨架上的固定化:用于卤代醇不对称合成的高稳定酶纳米反应器
- C++ string/stack/list/deque/multiset 小结
- 【 PLC知识分享】PLC中常说的位元件、字元件的区别
- Xi says China ready to work with Slovakia to address challenges, safeguard int'l justice
- 模拟量万能公式,不管什么品牌的PLC都适用
- 久坐引起的腰酸背痛,你以为站着就能解决?
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)