C语言笔记-0607-指针

C语言笔记-0607-指针

编码文章call10242025-06-29 1:21:181A+A-

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;

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4