C++ 通过指针正确的交换两数值

1、对于编程来说,语言的种类是很多种的,VB,Java,objective-c,c语言,C++语言等等。。。每种语言都有各有千秋,就看读者怎么去对待了。下面坐着就简单的介绍下C语言的部分

2、C语言被称为是母语,是编程语言的基础,而且在编译环境中,执行速度是比任何一种语言都是要快的,但是,由于C语言是面向过程的,没有丰富的类库(不懂得小伙伴可以百度),所以开发速度是很低下的

3、对于大数据来说,scanf和printf的处理能力是比其他语言更加的优秀,执行的速率也是相当的不错的

4、对于C语言来说,指针是它最迷人的地方,也是最让人头疼的地方,在使用指针的时候千万要小心,不要去解引用那些空指针和野指针,会导致程序崩溃,严重的话是会损坏到系统中的文件,因为野指针指向的空间是不确定的,当我们去试图解引用的话,就会产生我们不想看到的结果

5、函数:你可以想象成为一个大箱子,或者是一个加工厂,进过加工后得到我们想要的结果

6、函数的传参:三种情况:传值,传引用(C++中使用的,不支持C),传地址
  
  下面看代码:

//交换的是指针的值,即交换了指针的指向。
void exchange1(int* x,int* y){
int* temp = NULL; 
temp = x;
x = y;
y = temp;
}
// 通过两个地址不能正真交换两个数


//交换指针指向变量空间的值,指针指向不变。
void exchange2(int* x,int* y){
int temp = 0;
temp = *x;
*x = *y; 
*y = temp;
}
// 这样交换是可以实现两个数字的交换的


  假设主函数里定义两个变量 int = 5; int b = 7;
   1、 那么调用exchange2函数的时候,变量a和变量b的地址就会传给exchange2函数中
   2、 在调用函数后,形参*x和*y内容就是变量a和b的地址 : x = &a, y = &b;
   3、 在进行交换的时候就是在修改形参的值,从而间接修改实参的值,而exchange1函数是无法改变实参的值,只是改变的是形参的值罢了

所以作者希望读者能够理解好指针,对于解引用和去地址都要小心!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值