c语言指针入门

mac2024-01-28  34

指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。简单地说指针就是指向变量和对象的地址。 初学者唯一会用到指针的地方就是通过函数修改变量具体的值

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》章节

最新回复(0)