指针初步学习
指针本质星号的用法传递时的用法本质就是个“门牌号”把计算机内存想象成一个巨大的小区里面有一排排一模一样的房子你在代码里写个int a 10;就相当于在这个小区里租了个房子往里面塞了个写着“10”的纸条。那指针是啥指针就是这套房子的门牌号inta10;int*pa;a 就是去查一下 a 这个房子的门牌号是多少然后把这个门牌号塞进 p 这个盒子里。p 里面装的压根不是 10而是“XX路100号”这种地址星号的用法当你写 int *p 的时候它就是个标签。相当于你跟编译器说p 这个盒子比较特殊它不装普通数字它专门用来装门牌号当你写 *p 的时候它就是个钥匙。意思是“拿着这个门牌号找过去开门把里面的东西拿出来”。就这么简单。你以后看到 *p脑子里就自动翻译成“开门拿东西”就行了。很多人刚学的时候想改个值顺手写p 20;这就相当于把门牌号撕了换成20原来的房子根本没动要改里面的值必须得*p 20;拿钥匙开门去改传递时的用法问题想改原件得给门牌号你在函数里写个void change(int x)然后在里面把 x 改成100结果出了函数一看外面的变量还是原来的值解决方案C语言默认是“复印一份给你”。你拿着复印件怎么涂改原件都不会变。你想改原件怎么办你得把原件的门牌号传进去voidchange(int*x){*x100;// 拿着门牌号找到原件开门改掉}