這個無法交換數(shù)據(jù)。C語言函數(shù)參數(shù)的基本規(guī)則是值傳遞,所以傳遞時只能實現(xiàn)實參向形參的單向的、值的傳遞。這就是為什么需要使用指針才能實現(xiàn)值交換的原因。
十年的循化網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整循化建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“循化網(wǎng)站設計”,“循化網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
不知道你要交換的兩個變量類型,所以這里以整型數(shù)據(jù)交換為例,以下swap函數(shù)實現(xiàn)了交換兩個整型變量值的功能:include stdio.h// 交換給定指針指向整型變量的值。
你的交換函數(shù)是不返回值的,你卻在函數(shù)中return t;這本身就是一個錯誤,而且一個函數(shù)只能返回一個值,你要輸出a,b兩個數(shù),函數(shù)是不可能通過傳值調(diào)用來完成的,要不你就在函數(shù)中輸出。
/ 編寫c語言程序,實現(xiàn)交換兩個變量值的操作。要求:使用形參為指針的函數(shù)swap完成交換功能。主函數(shù)中,使用整型指針從鍵盤輸入兩個整數(shù),通過調(diào)用swap完成交換 輸出交換前后的變量值進行比較。
int是基礎類型不是引用類型,在只會在同一個大括號里識別,也就是說,swap方法里值是換了,但你外面?zhèn)鬟M來的值,該啥樣還啥樣,明白么?所以你要么直接換值,別用方法,要么你換一種引用類型的對象來存取。
1、程序中有兩處出現(xiàn)*point_1和*point_2,但是兩者含義不同。程序第5行的*point_1和*point_2表示定義兩個指針變量*point_1和*point_2。它們前面的“*”只是表示該變量是指針變量。
2、這個,c語言里面的排序算法是通用的吧,先這些數(shù)據(jù)存放在一個數(shù)組里面,然后,用簡單排序算法進行排序,可以選擇從大到小排列,然后數(shù)組遍歷循環(huán)以后就可以輸出了。
3、看你代碼原意,是想定義一個字符串數(shù)組strs。但是你寫的char *strs[5];表示的是一個維度為5的指針數(shù)組。你可以把strs直接改成字符串數(shù)組,char strs[5][N],但你后面的函數(shù)參數(shù)類型也要跟著改。
方法 1:(引進變量)可以認為a、b、c各占一個小格,小格里可以放入數(shù)字。
編寫c語言程序,實現(xiàn)交換兩個變量值的操作。要求:使用形參為指針的函數(shù)swap完成交換功能。主函數(shù)中,使用整型指針從鍵盤輸入兩個整數(shù),通過調(diào)用swap完成交換 輸出交換前后的變量值進行比較。
函數(shù)的值傳遞是單向傳遞,不能由形參改變實參的值。因此要用到指針,函數(shù)如下。
int *p, int *q){ int temp;//定義臨時變量 存放中間值 temp = *p;p = *q;q = temp;} 注意:不能直接寫void swap(int i, int j);因為那只是臨時變量,函數(shù)調(diào)用完后,便釋放空間,兩個值并沒有交換。
我們用C語言的時候,經(jīng)常需要將兩個數(shù)字交換,那么如何實現(xiàn)呢?下面我給大家分享一下。
要用函數(shù)實現(xiàn)兩個數(shù)的交換,則函數(shù)參數(shù)必須定義為指針形式,否則函數(shù)中對數(shù)值的修改將不會影響主調(diào)函數(shù),這是C語言的規(guī)則。
主函數(shù)中,使用整型指針從鍵盤輸入兩個整數(shù),通過調(diào)用swap完成交換 輸出交換前后的變量值進行比較。
首先,就是最基本的知識,寫頭文件,函數(shù)聲明,定義變量。下面還需要定義指針,需要定義兩個指針p1和p2,然后把a的地址賦值給p1,把b的地址賦值給p2。
include stdio.h// 交換給定指針指向整型變量的值。
而嚴重的情況是,該單元的數(shù)據(jù)可能是有用的,因此fun2()不但沒有實現(xiàn)兩個數(shù)的交換,反而給系統(tǒng)的穩(wěn)定性帶來威脅。fun3(),將int賦值給int *,編譯錯誤。fun4()是正確的。
要交換任意變量 那么就只能通過指針來進行 不考慮變量類型,而直接交換值。需要三個參數(shù),兩個變量地址,以及變量所占的空間。
函數(shù)返回后,這兩個變量被舍棄,函數(shù)調(diào)用也沒有將這兩個臨時變量的值返回給main函數(shù)中調(diào)用使用的參數(shù)功能。所以,在函數(shù)中要操作調(diào)用者申請的變量,需要給出它們的指針,函數(shù)中用指針來找到這些變量的位置和內(nèi)容。
void swap(int a,int b){ int t;t=a;a=b;b=t;} 這樣寫,只是傳了一份拷貝給a,b,交換好后,棧清空,沒有傳回給你原來所要交換的數(shù)。
這個無法交換數(shù)據(jù)。C語言函數(shù)參數(shù)的基本規(guī)則是值傳遞,所以傳遞時只能實現(xiàn)實參向形參的單向的、值的傳遞。這就是為什么需要使用指針才能實現(xiàn)值交換的原因。
百度上找的答案,這個問題挺難的,至少我不會,學習c語言好今年了。
要交換任意變量 那么就只能通過指針來進行 不考慮變量類型,而直接交換值。需要三個參數(shù),兩個變量地址,以及變量所占的空間。
函數(shù)返回后,這兩個變量被舍棄,函數(shù)調(diào)用也沒有將這兩個臨時變量的值返回給main函數(shù)中調(diào)用使用的參數(shù)功能。所以,在函數(shù)中要操作調(diào)用者申請的變量,需要給出它們的指針,函數(shù)中用指針來找到這些變量的位置和內(nèi)容。
1、首先,就是最基本的知識,寫頭文件,函數(shù)聲明,定義變量。下面還需要定義指針,需要定義兩個指針p1和p2,然后把a的地址賦值給p1,把b的地址賦值給p2。
2、swap函數(shù)一般是一個程序員自定義函數(shù),是實現(xiàn)兩個變量數(shù)值的交換。比如:int a = 2;int b =3;swap(a,b); //一般用到變量數(shù)值交換,交換后a=3 b = 2;通過使用臨時變量實現(xiàn)交換。
3、編寫c語言程序,實現(xiàn)交換兩個變量值的操作。要求:使用形參為指針的函數(shù)swap完成交換功能。主函數(shù)中,使用整型指針從鍵盤輸入兩個整數(shù),通過調(diào)用swap完成交換 輸出交換前后的變量值進行比較。
4、不知道你要交換的兩個變量類型,所以這里以整型數(shù)據(jù)交換為例,以下swap函數(shù)實現(xiàn)了交換兩個整型變量值的功能:include stdio.h// 交換給定指針指向整型變量的值。
5、而嚴重的情況是,該單元的數(shù)據(jù)可能是有用的,因此fun2()不但沒有實現(xiàn)兩個數(shù)的交換,反而給系統(tǒng)的穩(wěn)定性帶來威脅。fun3(),將int賦值給int *,編譯錯誤。fun4()是正確的。
6、要交換任意變量 那么就只能通過指針來進行 不考慮變量類型,而直接交換值。需要三個參數(shù),兩個變量地址,以及變量所占的空間。