C语言之指针

指针和内存模型 (P是地址)

内存地址:

C语言之指针_第1张图片
byte 作为内存寻址的最小单元。
Int a= 999(转换成补码进行存储) ; int 类型占 4 个字节。
C语言之指针_第2张图片
变量放在哪里的问题。其实,定义一个变量实际就是向计算机申请一块内存来存放:
printf(“%x”, &a);
我们可以通过取址运算符& ,获取到变量a的首地址
其实一个指针p实际代表另外一个变量的地址,如果前面加上* 变成 * p,那么这就表示这个指针指向地址的变量值了。

&:单目运算符&是用来取操作对象的地址。
指针变量的初始化:int *p = NULL ; //声明指针变量如果不指向任何地址,那么就的呢与NULL;

指针变量的初始化:int *p = NULL ;
指针与数组之间的关系:
int A[10],*p;
p = &A[0];
C语言之指针_第3张图片

二级指针:

C语言之指针_第4张图片

指针与函数:

函数参数为指针
C语言之指针_第5张图片
需要注意的是,形参中变量名分别为 p 和 q,变量类型都是 int* 型。所以实参 i 和 j 的地址 &i 和 &j 是分别传递给 p 和 q,而不是传递给 *p 和 *q。

函数指针:

C语言之指针_第6张图片

你可能感兴趣的:(C语言,c语言,开发语言)