指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。简单地说指针就是指向变量和对象的地址。
初学者唯一会用到指针的地方就是通过函数修改变量具体的值
void swap(int a, int b)
{//将变量a,b交换int i = 0;i = a;a = b;b = i;}
int main()
{int a = 1, b = 2;swap(a, b);
}
这样是无法按照意图交换参数a,b的值,函数需要这样改
void swap(int *a, int *b)
{//将变量a,b交换int i = 0;i = *a;*a = *b;*b = i;}int main()
{int a = 1, b = 2;swap(&a, &b);//swap(a,b)也能通过?为什么 }
因为传入的实参a,b 初始化给了临时变量(形参)a,b,
在编译器中执行了a(a),b(b),这个两个变量名称一样但是作用域不一样,不是一个变量。
参考文献:
3.学习数据结构还需了解结构体(struct):https://blog.csdn.net/weixin_43115440/article/details/93486050
和c语言的内存管理(malloc):https://blog.csdn.net/wxb1553725576/article/details/42714947
4.通过简单的数据结构融会贯通学过的知识(看得懂这个c语言的基础应该不错了):https://blog.csdn.net/endeavor_g/article/details/80552680
1.初学者看ppt:https://pan.baidu.com/s/1wgi9lOqOBOnY6ega-Zj-Nw 密码:urdt
2.了解指针细节看如下《c++primer》章节