【C语言】指针基础

  首先要清楚一个最重要的定义:指针==地址,获取地址的途径:&变量==地址

int *p = &a;       //整型地址(指针)变量保存整型地址值
*p = 100;       //间接访问符(通过p访问a)   【解引用】
p = &b;         //定义时有*,不定义时可不用
*p = 200;       //200赋值给b
  1. * 变量名,则直接访问(解引用)到指针指向的变量。
  2. 指针类型一样才能赋值 
int a;   //&a-->int *p
double b;     //&b-->double *p2
float c;    //float-->float *p3

  在二级指针中,命名规则:**pp==**p1(**p2)  [ 只是便于区分,pp,p1,p2没有任何区别 ]

int main()
{
	int a = 10;
	int b = 20;
	int *p = &a;   //在定义时*说明p是个指针(地址)变量
	*p = 100;     //a = 100
	p = &b;
	*p = 200;       //b=200
	int **pp = &p;      //int a,&a->int*,int *p,&p->int **
	*pp = &a;     //p=&a
	**pp = 1000;         //*p = 1000;a=1000
	*pp = &b;          //p = &b
	**pp = 2000;          //*p = 2000;b =2000
        
	//int *q
	//pp = &q
	//pp = &a  
	//error

	return 0;
}


  用指针修改值时,要注意: 修改谁的值,传谁的地址

  子函数的改变想要改变父函数的值:

  1.  传指针
  2.  解引用

  野指针(悬挂指针),解引用时崩溃  

  空指针(NULL)表示无效指针  

int *temp;     //野指针 

  

猜你喜欢

转载自blog.csdn.net/weixin_40740059/article/details/79764016
今日推荐