7.1指针的基本概念
指针的作用:可以通过指针间接访问内存
- 内存的地址编号是从0开始记录的,一般用16进制的数字表示
- 可以利用指针变量来保存/记录地址
定义指针的语法: 数据类型指针名
因为想让指针p指向a 的地址,所以p需和a的数据类型一样
&是取址符 p=&a *意味着 p记录了变量a的地址
int * p;
p=&a;
//上面两行也可以写成一行
int*p=&a;
7.3指针所占内存空间
sizeof(int *) sizeof(p) sizeof(float *) ......
7.4空指针和野指针
空指针: int*p=NULL;
** p=100; (错误!!不可以访问!!)*
编号0~255的内存是系统占用的,不允许用户访问
7.5 const修饰指针
7.6指针和数组
7.7指针和函数
作用:利用指针作函数参数,可以修改实参的值
值传递
void swap01(int a, int b)
{
int temp=a;
a=b;
b=temp;
}
int main()
{
int a=10;
int b=20;
swap01(a, b);
}
地址传递(在函数体中修改实参的值)
void swap02(int *p1, int *p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp;
}
int main()
{
int a=10;
int b=20;
swap01(&a, &b);
}
总结:不改变实参的值就用值传递,要改变实参的值就用地址传递