指针

一.指针本质

和普通的Int float一样也是数据类型,等同于unsiged int为四个字节

 

 二.结构体指针

 

 

 

结构体指针的正确两种正确使用:

1.为结构体指针申请变量使其可以用指针操作这个变量里面的值

2.已经有个结构体变量,则可以只申请相同结构体类型的指针(不用为其申请空间),然后用这个指针操作那个变量

总结一下:指针要操作,必须要有操作的东西(不要只是一个指针就对这个指针里面的东西操作,可能里面根本就没有)

典型错误使用:

 

 

 本以为会打印出00000000,但是这里的list->headNode根本还没指向申请了空间的headNode,所以更改为:

 

 

 

 

结构体不同的赋值和访问方式:

 

 三.函数指针

函数名就是首地址

 

 因为函数名可以是地址,因此可以用指针来保存

 

 

再加上调用

 

 四.野指针

两类:指向被销毁;指向没权限(系统或其他程序正在使用)

理解free(p):p为指针,*p为取所指向地方的值,free(p)是销毁p所指向的地方

      p中的地址保持不变,只是指向了一片废墟。所以,free(p)后应该

     将p置空p=NULL避免野指针

五:数组中的指针

数组名和数组的第一个元素地址就为数组的地址

 

 因为存在地址,就可以用指针访问元素

 

 理解一下这里的p[2],因为a等同于地址并将它赋给了指针p,所以这里的p[2]可以

看做a[2]。

六.字符串中的指针

字符串是一个常量,类似于一位数组(一位数组的名字也是一个常量,无法改变其位置,没法进行加减)

 

 字符串中元素访问

 

 注意:字符串的特殊之处,是一个常量(一位数组可以,因为只是名字是常量)

 

posted @ 2020-03-06 17:06  记得喝牛奶  阅读(145)  评论(0编辑  收藏  举报