您的位置:首页 > 其它

通过指针交换两数值

2016-08-25 19:36 239 查看
 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函数是无法改变实参的值,只是改变的是形参的值罢了
 

所以作者希望读者能够理解好指针,对于解引用和去地址都要小心!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针 交换两数值