C指针——简单总结

简介:

  指针变量在使用前,必须指向具体的有效的内存单元    

  指针变量在使用前不但要定义还要初始化

  四个方面:指针的类型,指针指向的类型,指针的值或者指针所指向的内存区,指针本身所占的内存区

 int *ptr;//指针的类型是 int* ;指针指向的类型是 int ;32位长,指针指向了首地址;sizeof

 

&地址运算符   *取值运算符

int a =12;int b ;int *p ; int **ptr;
p = &a;  //&a结果是一个指针,类型是int*;指向的类型是int,指向的地址是a的地址;
*p =12;
ptr = &p;
*ptr =&b;  //*ptr是个指针,&b的结果也是个指针
**ptr =24; //*ptr的结果是ptr所指向的东西,在这里是一个指针,对这个指针在做一次*运算,结果是个int类型的变量

 

指针的算术运算

char a[20];       
int *ptr=(int *)a;   // 注意数组a为char,指针指向的类型是int
ptr++;

  

数组指针与指针数组

   假设一个数组str[5],str[0]是数组的第一个元素,数组名str就是数组元素str [0]的地址,所以str与&str[0]指向同一内存单元

   字符串处理有两种方式,一种是数组形式,一种是指针形式,数组名代表存放在数组空间的首地址

 

函数指针与指针函数

要在被调用函数中改变主调函数的变量值,就得把主调函数中的变量的指针作为实参,传递给被调函数,仅仅传递变量值是没有作用的。

函数指针 数据类型 *变量名)();    

  用来指向某个函数,但是具体指向那个函数要看使用前函数指针指向那个函数

void (*p_output)(); 
p_output=output; 
(*p_output)();  //通过指针变量调用函数  
return 0;

指针函数 数据类型  *变量名();

  返回值是指针的函数,()的优先级比*大,所以变量名先与()结合再与*结合

  函数指针就是函数的地址;指针函数就是返回值为指针的函数

posted @ 2018-07-19 16:02  小猪利琦  阅读(207)  评论(0编辑  收藏  举报