1樓:望品謝琇
這個跟庫函式的定義有關。。還有就是編譯器的差異。。
有些編譯器預設是非0為真,有些非-1為真。。
建議不要使用這麼簡單粗暴的辦法判斷。。請使用c提供的標準巨集判斷。。
在**學的。。呃。。自己寫**寫多了自然就知道了
2樓:匿名使用者
根據你的程式來看應該是一個void型,
不過你這是一個交換資料函式,如果這樣傳進來,是修改不了原址的
而如果你想輸出交換後的結果,就只接在函式裡面輸出,因為等出了這個函式,a和b的值是不會變的。
3樓:匿名使用者
你的程式不對的。return應該返回一個有效值,但是你的沒有;如果你想實現返回最大值應該是
my_max(int a,int b)
return a;
}void 是沒有返回值的
4樓:
my_max(int a,int b)
1.return;代表函式的結束,不返回任何值。
2.函式名前要寫上void,
5樓:匿名使用者
void my_max(int a,int b) //這麼寫吧return 直接返回到呼叫的該函式的地方 不需要輸出。
void a(void);
void b(void);
void main(void)
void a(void)
void b(void)
6樓:
return返回的是空值,不過應該還是預分配了整數型別的空間。
void型別是沒有返回值,不需要輸出。
7樓:匿名使用者
根據你寫的這個return返回的是個布林值,void是空,不會有返回值
8樓:晒白的黑馬
void my_max(int a,int b) 你在函式前面加上個void就明白怎麼回事了
void是無返回值型別 return; 後面沒有跟任何型別,就是說無返回值
9樓:淦海瑤
在c中任何函式都有返回值,這個是定下的,主函式也有返回值
返回值分幾個方面,逐個說一下
主函式的返回值,這個一般使用者用不到,程式執行的時候,系統會根據這個返回值來判斷程式的執行結果
不管定義神馬型別的返回值,在tc中預設為void型(這個可以省略),可以根據需要自己定義都可以。
vc中好像必須寫,要不然編譯系統提示出錯
子函式的返回值,分兩類
void,也就是在不需要子函式返回數值的時候用到。注意的是不需要不代表沒有返回值。呼叫成功返回1,不成功返回0,我好像在**看到過這個說法,我不確定
非void型,這個返回值型別根據定義來返回
值得注意的是,在子函式中,只要執行return一定結束子函式,不管後面有多少**
一些系統自帶的函式,如printf,scanf等,最好了解他的返回值
10樓:匿名使用者
你這個預設應該是void型別
11樓:溫馨鬼腳七
return返回int型,void無返回值
12樓:來自桃花江助人為樂的銀柳
void就是空,沒有返回值。
c語言的函式返回值?
13樓:
所謂返回值,就是人們想要知道函式或者程式所得到 的結果而設計的函式或者程式結束時給出一個值。比如:我們編寫一個加法函式,肯定想知道加完過後的結果是什麼,那麼我們就指定這個結果為該加法程式的返回值。
關於返回值的返回:
1、函式呼叫語句本身代表其返回值:例如:fun(a);那麼「fun(a)」就是這個返回值。
2、可以把返回值存到對應型別的變數之中。例如:int a=fun(b);
3、返回值是多種多樣的,可以是各種各樣的,int short char double 等等,還可以是指標或者結構體。在資料結構的二叉樹部分,某一個函式的返回值是一個帶有兩個指標的結構體。
14樓:匿名使用者
1、函式定義為:int max(int a, int b),這是個函式是獲得a,b兩個整數值較大的那個,在函式的前面有個int值,說明這個函式返回的是一個整數型別,所以他的返回型別為整型,如果a值比較大就會返回a,這個a的值被稱為返回值。
例如:#include
int max(int a,int b)void main()//在主函式中呼叫函式int max(int a,int b),如果我們輸入1,2,則最後顯示2,2為返回值,而函式int max(int a,int b)中的返回型別為整型。
15樓:巫素芹拜君
1)void
+函式名:表示函式沒返回值。2)int+函式名:
表示函式的返回值型別是整型。3)函式中可以有return語句,表示函式執行到此結束,如果return後面有表示式,說明函式有返回值,如果只是一個'return;'說明函式沒返回值
16樓:縱榮花暴俏
返回值就是執行一個方法後,這個方法丟擲的一個值。返回值一般被用來輸出方法的計算結果,共呼叫的方法取得並進行判斷。
一般說來,定義為void的方法不返回任何值,也就是可以什麼都不返回,或者寫成return;這也是什麼都沒返回。
17樓:
就你的函式功能而言,可以使用指標和引用的方法來交換兩個變數的值。用返回值的方式有點多餘,因為c語言函式只能返回一個結果,如果要返回多個值,則需要寫成一個結構體返回,但這樣其實返回的仍然是一個臨時變數,並沒有交換兩個變數的值,所以不符合你的需求
18樓:金色潛鳥
函式呼叫結果的返回值,可以通過3個途徑獲得。
(1)函式自身返回
(2)通過函式引數返回
(3)通過全域性量返回。
到底用那種方法,取決於程式設計師的考慮。
node* --通過 函式自身返回,返回一個結構指標,指向 node 型結構。
int -- 通過 函式自身返回,返回一個整型量。
createlinklist 是建連結串列,返回node* 結構指標getelem 獲取元素單元,返回node* 結構指標insertlinklist 用 int 表示插入成功或失敗,或用 int 表示什麼。
這些 都 取決於程式設計師的考慮。 沒有絕對的規定。
19樓:柴海依歆
public
void(返回型別:這裡為無) 方法名1()public
int(返回型別:這裡為整形) 方法名2()方法1呼叫了輸出2
方法2呼叫了則可以int
a=方法2();著裡的a等於2了;
一個返回一個資料一個則直接執行
20樓:匿名使用者
如果沒有返回值的話,則就是在函式的結尾直接使用ret指令,然後cpu自動的從堆疊中取出斷點處的地址,恢復呼叫之前的cpu狀態,然後繼續執行函式後面的指令。
函式的返回值是存放在一個呼叫堆疊中,被調函式返回後,主調函式從堆疊中取出返回值,放入到一個變數中。然後就可以使用這個變數了。這就是返回普通的值,返回指標型變數的話,就複雜些。
這些東西可以聯絡編譯原理和組合語言,加以理解。
21樓:聖誕鯊魚
在time1()函式裡,char now是個在函式裡宣告的臨時變數函式返回 char * p之後 ,char now的空間就已經釋放掉了
如果你想返回時間字串
把char now[80]; 改成 char *now =(char *)malloc(sizeof(char)*80);
用malloc函式申請空間,函式返回之後空間就不會被釋放掉了vc++ 6.0編譯通過
22樓:匿名使用者
char now[80];
char *p=null;
p=now;
printf("%s",p);
return p;
這些操作都是子函式中的資料(變數),在子函式結束後,p,now都會被釋放,你的輸出都是不準確的!
23樓:零剛德欣美
當你呼叫函式,並想得到你呼叫的函式的值的時候,就在你呼叫的函式里加上個return語句,返回你想要得到的值
24樓:匿名使用者
不理解你指的輸出是什麼意思。
有返回值是因為呼叫的**需要返回值,沒有返回值是因為呼叫的**不需要返回值,就這麼簡單阿。
25樓:老夫貪狼
假設你的函式是int sum(int a,int b)當你呼叫的時候如果你在主函式中這樣呼叫x=sum(2,4);那麼x的值就是6;
26樓:
你可以這麼理解,比如我們定義了一個函式fun(),如果這個函式有返回值,那麼在呼叫程式裡面(比如主函式)就可以把這個函式當成一個數使用;如果沒有返回值,那麼通常他就是一個獨立的語句存在。
比如fun函式裡面有個return 0;表示返回值是零,那麼在呼叫函式裡面就可以存在諸如
a=fun();b=a+fun();if(fun()>=0{};……這類的語句,表示a=0;b=a+0;if(0>0){};等等,當然也可能是返回一個變數的值,你個指標的值是一樣的。
如果沒有return 語句,那麼函式沒有返回值,呼叫函式裡面就不能把他當做一個數值來使用,會出現:
fun();單獨成句的語句,在fun()裡面可能進行了一些操作,但不需要結果。
c語言自帶的函式通常都有返回值,計算函式返回計算結果,操作函式返回操作結果(成功返回1,失敗返回0)
27樓:
int sum(int a, int b)
void main()
列印輸出3
28樓:淦海瑤
在c中任何函式都有返回值,這個是定下的,主函式也有返回值
返回值分幾個方面,逐個說一下
主函式的返回值,這個一般使用者用不到,程式執行的時候,系統會根據這個返回值來判斷程式的執行結果
不管定義神馬型別的返回值,在tc中預設為void型(這個可以省略),可以根據需要自己定義都可以。
vc中好像必須寫,要不然編譯系統提示出錯
子函式的返回值,分兩類
void,也就是在不需要子函式返回數值的時候用到。注意的是不需要不代表沒有返回值。呼叫成功返回1,不成功返回0,我好像在**看到過這個說法,我不確定
非void型,這個返回值型別根據定義來返回
值得注意的是,在子函式中,只要執行return一定結束子函式,不管後面有多少**
一些系統自帶的函式,如printf,scanf等,最好了解他的返回值
29樓:匿名使用者
根據你的程式來看應該是一個void型,
不過你這是一個交換資料函式,如果這樣傳進來,是修改不了原址的
而如果你想輸出交換後的結果,就只接在函式裡面輸出,因為等出了這個函式,a和b的值是不會變的。
30樓:首桂蘭慕溪
一群不懂c的人在討論
有一種指標型別,叫做
void
*連void是什麼都不知道就在這裡胡說,恐怕都是看譚浩強的書學過來的吧
c語言函式的返回值最後能輸出嗎?
31樓:匿名使用者
可以輸出:
例如:#include
int fun()
int main()
32樓:緣lai如茨
例如函式定義為:int max(int a, int b),這是個函式是獲得a,b兩個整數值較大的那個,在函式的前面有個int值,說明這個函式返回的是一個整數型別,所以他的返回型別為整型,如果a值比較大就會返回a,這個a的值被稱為返回值。 #include int max(int a,int b)
void main()
如:在主函式中呼叫函式int max(int a,int b),如果我們輸入1,2,則最後顯示2,2為返回值,而函式int max(int a,int b)中的返回型別為整型。
C 函式返回型別是引用的問題,C 函式返回值為引用型別時出錯!大神進!
引用就是變數的別名,返回c3的引用,返回的就是c3 c3被清除,再呼叫c3的函式,結果當然不正確 如果返回 i 後,i被清除,但是返回值已經被輸出了,結果是正確的 返回c型別,g函式返回 的是c型別的一個物件,雖然c3被清除,但是返回的物件還能呼叫get函式 你可以在c類中增加一個解構函式,除錯執行...
糾錯 c語言 函式返回指標問題
解釋如下 因為q宣告的是一個區域性變數,所以在函式呼叫結束後它所開闢的記憶體空間就會被系統收回 它裡面的內容也就銷燬了,因此它輸出的是一段亂碼!改下程式 include include include char t char copy char p,int m void main 輸出的是什麼?一起...
c語言的函式問題,c語言函式呼叫問題
可以不寫,但是要把你的自定義函式寫在主函式前面才行。就是說把z的值返回到主函式,本例中就是把z的值返回給c。不能不寫的,否則當編譯器編譯到你main函式時,由於還沒編譯到下面的max定義。所以它找不到max到底是什麼符號。一般申明都寫在函式後面的,否則,出了main外,其他函式看不到max的申明的。...