善于使用指针
指针是c语言的灵魂
7.1 什么是指针
谭浩强的《c语言程序设计》里面明确,指针是个地址;我就觉得这种说法非常打脑阔,把它理解成类型更好懂
有一种类型叫指针,声明指针时,计算机会申请一块内存,这就是指针的地址,这块内存可以存另一块变量的地址;另外,声明指针时,要先声明指针指向值的类型,通过这个类型,确定指向值类型(一个值的类型取决于它的使用方式,所以必须要先声明类型);计算机通过访问指针存的值(地址),间接访问到对应的内存的值

链接C 指针
7.2指针初始化
1、指针变量初始化的方法
1 | int a; |
2、赋值语句的方法
1 | int a; |
7.3指针的表达式
两种运算
*
间接访问符号
&
取地址符号
他们互为逆运算*&a
和a
等价
左值和右值
左值:左边的值,表示一个地址
右值:右边的值,表示一个值
指针表达式
《c和指针》中有原图

7.4 指针的运算
这里理解成地址似乎更好懂
指针加上一个整数是另一个指针
指针+整数 标准定义中,只能用于指向数组的指针,但其实你只要知道指针操作后的是什么,好像也是可以用的
指针-指针 两个指针相减的类型是无符号整数,表示两指针在内存中的距离
7.5 指针做函数参数
提一下,上课就是经典的交换两实参的值,函数传递的是实参的拷贝,函数改变的是传的拷贝的值,不会改变实参的值,如果想改变实参的值,可以把实参的地址当参数传过去,即指针,这样,虽然传过去的也只是一份指针的拷贝,但函数交换值的时候,实际是通过间接访问,找到了实参的地址,进而修改了实参的值