以前学C语言的时候,虽然学习了指针,但是对指针理解的不深刻,那时候也没有学单片机,没有接触汇编语言,对知识的认识不深刻,现在学过C语言,学过单片机的汇编语言,对知识的理解有了更深一层了。
1,指针:说白了就是地址,主要是区别于变量,它的值直接指向存在电脑存储器中另一个地方的值。
2.为什么需要指针?
在学习指针之前,我们有变量和数组,数组也是变量的集合,为什么不够呢?**指针想解决问题的典型例子就是数值交换,也就是类比汇编语言的间接访问一样,访问的是地址,在内存空间里,地址的值是不变的,而变量的值虽然可以交换,但是在传参的时候,就会体现出指针的好处,就可以交换成功。
3.*p
对指针所指向的空间的值,是地址指向的值
4.&a
对变量a存放的空间取地址
int *p;
p = &a;
对这两句有了深刻的理解。
5.char p
为二级指针,指向指针的指针,分开看,p是传给程序的数串字符串,每一串由一个指针(char)指向,而这些指针又组成了一个数组,由一个二级指针(charp)指向。char*p可以不严谨地理解为“字符串组”