c語言函式返回值,c語言的函式返回值?

2022-02-07 01:57:03 字數 6071 閱讀 9772

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的申明的。...