重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。
像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。
举一个典型的例子(交换两个变量的值)当你使用下面这种方法的时候会面临如下问题:
你会发现没有成功交换两个变量的值,这是因为 put() 函数内部的 a、b 和 main() 函数内部的 a、b 是不同的变量,占用不同的内存,它们除了名字一样,没有其他任何关系,put() 交换的是它内部 a、b 的值,不会影响它外部(main() 内部) a、b 的值。‘
当我们改用指针作为put函数参数的时候就能成功解决上面的问题。它就是我们开头所说的指针变量作(put)函数参数可以将(put)函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据
调用 put() 函数时,将变量 a、b 的地址分别赋值给 p1、p2,这样 *p1、*p2 代表的就是变量 a、b 本身,交换 *p1、*p2 的值也就是交换 a、b 的值。需要注意的是临时变量 p,它的作用特别重要,因为执行*p1 = *p2;
语句后 a 的值会被 b 的值覆盖,如果不先将 a 的值保存起来以后就找不到了。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧