日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言如何使用函数交换两个变量的值

發(fā)布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言如何使用函数交换两个变量的值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

函數(shù)交換變量值

首先咱們先來看一下平常咱們會想到的一個方法
定義一個臨時變量來交換數(shù)值

#include<stdio.h> #include<stdlib.h> void swap(int x, int y) {int temp = x;x = y;y = temp; } int main() {int a = 10;int b = 20;printf("before : a = %d b = %d", a, b);swap(a, b);printf("after : a = %d b = %d", a, b);system("pause");return 0; }

然后 咱們來看一下運行的結果:

發(fā)現(xiàn) a,b的值居然沒有改變???
這是為什么呢?
咱們記住一句話
原因是:形參是實參的一份拷貝
就像咱們平常的文件一樣拷貝一份出來,我們修改拷貝后的文件2,改了文件2里面的內容 。但是這和原來的文件有什么影響呢?對吧 所以說這個函數(shù)只實現(xiàn)了 交換形參里面的內容 對于實參沒有任何影響的呢。

再來說一下在函數(shù)調用過程中,如果有形參,實際是重新開辟出一塊內存空間來存儲東西的。
接下來畫一張圖:

先把 X的值賦給temp
然后將y的值賦給x
然后將temp的值賦給y 就完成了交換

但是我們看 交換的只是形參的值和實參沒有關系😂😂😂
那么我們就要想到使用傳址調用,借助指針,就可以很好的解決這一問題:

#include<stdio.h> #include<stdlib.h> void swap(int*x, int* y) {int temp = *x;*x = *y;*y = temp; } int main() {int a = 10;int b = 20;printf("before : a = %d b = %d\n", a, b);swap(&a, &b);printf("after : a = %d b = %d\n", a, b);system("pause");return 0; }

現(xiàn)在就可以了

這又是為什么呢?
其實就是使用了指針存儲地址的操作

圖我就不畫了 相信你們也能理解 實在是太多了 😭😭😭😭

最后附上一個最近寫的一到題目:使用遞歸方法使一個字符串逆序。也是使用指針操作,不過就不是直接操作里面的值了,是改指針的指向。
相信童鞋們也能理解😁😁😁
C語言驚天大bug
數(shù)組作為函數(shù)參數(shù)的時候,會被隱式轉換成一個指向首元素的指針

#include<stdio.h> #include<stdlib.h>int myStrlen(char* arr) { //所以這里寫成了char*類型也可以寫char arr[]哦if (arr[0] == '\0') {return 0;}return 1 + myStrlen(1 + arr);//遞歸實現(xiàn)自己的strlen原理差不多 } void reverse_string2(char str[]) {int len = myStrlen(str);char temp = *str;*str = *(str + len - 1);*(str + len - 1) = '\0';if (myStrlen(str) > 0) {reverse_string2(str + 1);}*(str + len - 1) = temp; } int main() {char arr[] = "abcdfeg";printf("before:%s\n", arr);reverse_string2(arr);printf("after:%s\n", arr);return 0; }

總結

以上是生活随笔為你收集整理的C语言如何使用函数交换两个变量的值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。