一、指针
(一)定义
- 地址
内存单元的编号
从0开始的非负整数
范围0-FFFFFFFF 【0 到 4G-1】
- 指针
指针就是地址 地址就是指针
指针变量就是存放内存单元地址的变量,不是变量里具体的值
指针本质上就是一个操作受限的非负整数
(二)例子
1、& 只能对明确的变量取地址
int i=0;
printf("Ox%x\n",&i); //输出的是地址(有&),不是值
//Ox%x-->即 %p-->表输出地址,十六进制
int p;
p=(int)&i; //int*转化为int
printf("Ox%x\n",p); //输出的也是地址,与上面的&i的输出相同
2、int * p=&i; //p保存i的地址,即p指向i。p是变量名字,int *表示该p变量只存储int类型变量的地址。i是否赋值或修改值都不影响p,因为p指向的是i这个变量,而不是i的值。
int i;
//i=100;
//int * p=&i; //即下面两行
int * p;
p=&i;
int *p; int k=55; *p=k; 更正如下:
int *p;
int k,j;
k=55;
//*p=k;改成下两行
p=&k;
*p=k; //即k=k
j=*p; //即j=k
3、p是int指针,q是int变量,如下:
int* p,q;
int *p,q;
p,q都是int指针,如下:<