指针
指针,英文名是pointer,也叫地址,他是常量。指针变量是可以保存地址常量的一个变量他就是一个内存空间的首位置
1,指针
指针,英文名是pointer,也叫地址,他是常量。他就是一个内存空间的首位置。
2,指针变量,(地址变量)
顾名思义,指针变量就是存放指针(地址)的变量。如果定义呢?
short int * p = NULL; //定义了一个指针变量P,并且付给初始值为零。
// short int * 就是类型。表示的是存放short int型内存块的地址的。
// p就是变量名。
//付给初始值为零,零表示不是任何内存块的地址。或者称p为空指针
//在32位系统下,所有的指针(地址)变量,都是四个字节。
//我们把一个地址赋值给一个指针变量,我们就说,指针变量指向了该内存块(变量)
3,*p的含义:这里的* 是运算符,取值运算符。
*p的含义,根据p里的地址,找对应类型的内存块。
如果p 的值为0,*p找不到内存,就会崩溃。
如果p 是乱值, 就会崩溃。
所以,未经初始化的变量是禁止使用的。
4,p + n 的含义(地址加上一个整型数的意思)
含义是:p这个地址向右移动n个存储单元(是p指向的内存单元),得到一个新的地址。
p[n],含义是p地址后第n+1个存储单元(内存块)。
由此得出,两个指针相减,等于间隔的内存块的个数。
两个地址不能相加。
5, 指针可以进行关系运算的。(在连续空间内比较才有意义)
例如,> >=,<,<=,==,!=
1、指针的基本概念
格式: 类型说明符 *指针变量名 ; (指针变量的类型, 是指针所指向的变量的类型, 而不是自身的类型)
如:int *p1; //定义p1为指向整型变量的指针变量
char *p2; //定义p2为指向字符变量的指针变量
指针变量的引用、
取地址运算符── “&”
引用运算符 ── “*”
说明: *p 对应类型内存块
原文:https://www.cnblogs.com/hyt19911004/p/12392501.html