當前位置:首頁 » 編程語言 » c語言參數傳遞

c語言參數傳遞

發布時間: 2022-02-08 09:27:16

c語言中,帶參數的主函數,如何傳遞參數

是將實參的值按一定順序賦給形參
值的傳遞是單方面的
形參值的改變並不影響實參

② c語言 數組作為參數傳遞

調用時實參只寫數組名不加方括弧就是引用數組整體

③ 關於C語言的參數傳遞順序……

樓主您好,首先您要理解一下i++的行為,即先用i,然後再++,所以,傳遞參數時先用i=1的值,用完瞭然後++,即先用x=y=1=i,然後i=2;我把程序給您改一下,你就會根據結果看的很明白了。
#include <stdio.h>
int f(int x,int y)
{
printf("x=%d\n",x);//顯示傳遞過來的i值
printf("y=%d\n",y); //顯示傳遞過來的i++值
if(x>y) return 1;
else if(x<y) return -1;
else return 0;
}
int main()
{
int i=1;
int k;
k=f(i,i++);
printf("i=%d\n",i);//顯示執行完函數後i的值
printf("k=%d\n",k);
return 0;
}
結果:x=1 y=1 i=2 k=0
樓主您的部分理解是對的,而結果有時候跟編譯器有關,它的編譯順序是不一樣的。
f(++i,i) 和f(i,++i)運行結果都與理解一致, f(i++,i) 和f(i,i++)運行結果與理解不一致;++是一種縮寫,對於y=i++,就是y=i,然後i=i+1;對於y=++i,就是i=i+1,然後y=i.

④ c語言函數調用時,參數是如何傳遞的

建立中間變數(形參),把實參值賦值給中間變數,當被調函數返回值時,系統釋放掉中間變數。

在程序中通過對函數的調用來執行函數體,其過程與其它語言的子程序調用相似。對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變數或其它構造類型數據及表達式。各實參之間用逗號分隔。

函數作為表達式中的一項出現在表達式中,以函數返回值參與表達式的運算。這種方式要求函數是有返回值的。例如:z=max(x,y)是一個賦值表達式,把max的返回值賦予變數z。



(4)c語言參數傳遞擴展閱讀:

C語言中又規定在以下幾種情況時可以省去主調函數中對被調函數的函數說明。

1、如果被調函數的返回值是整型或字元型時,可以不對被調函數作說明,而直接調用。這時系統將自動對被調函數返回值按整型處理。例8.2的主函數中未對函數s作說明而直接調用即屬此種情形。

2、當被調函數的函數定義出現在主調函數之前時,在主調函數中也可以不對被調函數再作說明而直接調用。例如例8.1中,函數max的定義放在main 函數之前,因此可在main函數中省去對max函數的函數說明int max(int a,int b)。

3、如在所有函數定義之前,在函數外預先說明了各個函數的類型,則在以後的各主調函數中,可不再對被調函數作說明。

⑤ C語言函數調用參數傳遞的是什麼

分兩種,一種是按值傳遞,一種是按地址傳遞,
按值傳遞就是在子函數中開辟出一個臨時內存空間,將傳遞的數值保存在這個空間中,當子函數結束後,這個內存空間就會釋放了!
按地址傳遞則是把主函數開辟的某個內存空間首地址傳遞給子函數,子函數可以直接讀寫主函數上這段內存空間,當子函數結束後,這部分空間不會被釋放,主函數將繼續使用這段空間!

⑥ C語言傳值參數傳遞的含義

在函數定義中,當形參是普通的數據類型時,一般按值傳遞的,也就是說,傳遞的是實參的拷貝,所以在函數內部對形參進行的操作將不影響實參,當形參為指針時,傳遞的是數據在內存中的地址,此時在函數內部對形參的操作將影響實參。

⑦ C語言中的參數傳遞方式有哪些

是函數參數的傳遞方式吧。c語言的話是:值傳遞和指針(地址)傳遞。c++的話除了c語言的兩種方式外還有引用傳遞。

⑧ C語言函數參數傳出怎麼用

struct Student st;
void function(struct Student st);這種形式就是傳遞地址;
void fuction2(struct Student * pst);這種形式就是傳遞結構體的地址;
調用這兩個函數的形式如下:
function(st);
fuction2(&st);
一般推薦第二種方式,因為第一種方式需要傳遞整個結構體,需要開辟sizeof(struct student)這么大的內存空間,開銷太大,第二種方式則只需要開辟四個位元組的內存,用來存放地址;

⑨ C語言中main()的參數傳遞

傳進來的都是指向字元串類型的指針,不能直接用==判斷,得用strcmp函數來做。
if(strcmp(argv[1],"/ON")||strcmp(argv[2],"1"))

⑩ c語言中,帶參數的主函數,如何傳遞參數給它

不可能按值傳遞的,設想一下
type
*arr
=。。。。。
sizeof(arr)為100萬了位元組,如果按照值傳遞,就要創建一個臨時變數temp也為100萬個位元組,效率豈不是太低了。再可能arr是堆內存,參數傳遞是要屬性相同,值相同,難道系統自行去new一段內存,這該用戶去釋放
還是系統自動回收呢?

熱點內容
安卓系統如何卡游戲首充優惠 發布:2024-12-28 17:30:51 瀏覽:477
收銀機密碼忘了怎麼辦 發布:2024-12-28 17:24:57 瀏覽:652
開源伺服器怎麼登陸 發布:2024-12-28 17:22:47 瀏覽:268
微信無法清理緩存 發布:2024-12-28 17:19:34 瀏覽:18
哪個安卓相機和蘋果差不多 發布:2024-12-28 16:52:34 瀏覽:186
eclipse不編譯jsp 發布:2024-12-28 16:43:40 瀏覽:229
word二進制流編譯html 發布:2024-12-28 16:39:22 瀏覽:545
國際服的六級防彈衣什麼配置最好 發布:2024-12-28 16:38:34 瀏覽:552
阿里雲伺服器保障嗎 發布:2024-12-28 16:36:56 瀏覽:889
小米平板清理存儲空間 發布:2024-12-28 16:17:10 瀏覽:484