第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開(kāi)發(fā)者教程

C 語(yǔ)言入門(mén)教程

C 語(yǔ)言基礎(chǔ)教程
01 C 語(yǔ)言簡(jiǎn)介 02 C 語(yǔ)言的程序結(jié)構(gòu) 03 C 語(yǔ)言的編譯 04 C 語(yǔ)言的標(biāo)準(zhǔn) 05 C 語(yǔ)言中的注釋 06 C 語(yǔ)言中的變量 07 C 語(yǔ)言中的變量類(lèi)型 08 C 語(yǔ)言的常量 09 C 語(yǔ)言的輸入與輸出 10 C 語(yǔ)言中的 printf() 格式輸出 11 C 語(yǔ)言中的類(lèi)型轉(zhuǎn)換 12 C 語(yǔ)言中的運(yùn)算符 13 C 語(yǔ)言中的算數(shù)運(yùn)算符 14 C 語(yǔ)言中的位運(yùn)算符 15 C 語(yǔ)言中的邏輯運(yùn)算符 16 C 語(yǔ)言中的三目運(yùn)算符 17 C 語(yǔ)言中的分支結(jié)構(gòu) 18 C 語(yǔ)言中的多重分支 19 C 語(yǔ)言中的分支嵌套結(jié)構(gòu) 20 C 語(yǔ)言中的循環(huán)結(jié)構(gòu) 21 C 語(yǔ)言中的 while 循環(huán) 22 C 語(yǔ)言中的 do-While 循環(huán) 23 C 語(yǔ)言中的 for 循環(huán) 24 C 語(yǔ)言中的多重循環(huán)嵌套 25 循環(huán)實(shí)戰(zhàn),打印九九乘法表 26 C 語(yǔ)言中的break和continue 27 C 語(yǔ)言中的 if 語(yǔ)句 28 C 語(yǔ)言中的 switch/case 語(yǔ)句 29 C 語(yǔ)言中的函數(shù) 30 C 語(yǔ)言函數(shù)的定義和聲明 31 C 語(yǔ)言中函數(shù)的參數(shù)傳入類(lèi)型 32 C 語(yǔ)言中的 main() 函數(shù)參數(shù) 33 make 工具 makefile 34 C 語(yǔ)言中的數(shù)組 35 C 語(yǔ)言中的多維數(shù)組 36 數(shù)組的練習(xí) 37 C 語(yǔ)言中的字符串 38 C 語(yǔ)言中的字符串函數(shù) 39 C 語(yǔ)言字符串練習(xí) 40 C 語(yǔ)言中的指針 41 C 語(yǔ)言中的 struct 42 C 語(yǔ)言中的 union 43 C 語(yǔ)言中的 maclloc free() 44 C 語(yǔ)言中的 enum 45 整體練習(xí)-學(xué)生管理系統(tǒng)
首頁(yè) 慕課教程 C 語(yǔ)言入門(mén)教程 C 語(yǔ)言入門(mén)教程 31 C 語(yǔ)言中函數(shù)的參數(shù)傳入類(lèi)型

C 語(yǔ)言中函數(shù)的參數(shù)傳入類(lèi)型

每個(gè)函數(shù)如果獨(dú)立的存在是沒(méi)有意義的。所以函數(shù)之間必然是相互通信的。而最常見(jiàn)也最常用的函數(shù)通信的方式就是函數(shù)的參數(shù)與返回值。而函數(shù)的參數(shù)是更為重要一些。因?yàn)榧兇鉀](méi)有參數(shù)傳入的函數(shù)是很好的。因?yàn)橐獙?shí)現(xiàn)某種功能,處理某些數(shù)據(jù),就要從外界獲得數(shù)據(jù)。

1. 值傳入

值傳入是在函數(shù)調(diào)用過(guò)程中,將原函數(shù)的數(shù)值復(fù)制一份后,將副本再傳入調(diào)用的函數(shù)中。在函數(shù)中操作的都是副本的數(shù)值。對(duì)原有函數(shù)中的原變量是沒(méi)有影響的。

2. 引用傳入

引用傳入是在函數(shù)調(diào)用的過(guò)程中,將原有函數(shù)中的變量直接傳入被調(diào)用的函數(shù)中。這時(shí)在被調(diào)用函數(shù)中操作的變量是調(diào)用函數(shù)的原有變量。這時(shí)原有變量中的數(shù)值會(huì)跟著函數(shù)的調(diào)用中的操作而改變數(shù)值。

而引用傳入有兩種方式:

  1. 使用數(shù)組
  2. 使用 & 符號(hào)

2.1 使用數(shù)組

對(duì)于 C 語(yǔ)言來(lái)說(shuō),由于考慮到效率的問(wèn)題的。數(shù)組的傳遞一般都是不復(fù)制的。因此函數(shù)中如果傳入的是數(shù)組,那么在被調(diào)用的函數(shù)中其實(shí)就是傳入了原始函數(shù)中的數(shù)組,而不是一個(gè)副本。

2.1 使用指針

使用指針是為了告訴 C 語(yǔ)言,我們這時(shí)希望將原有的變量直接傳入被調(diào)用的函數(shù),而不是一個(gè)副本。這種傳入方式在其它的編譯類(lèi)型的編程語(yǔ)言中也有類(lèi)似的傳遞方式。

3. 示例

3.1 值傳入示例

#include <stdio.h>

int add(int x)
{
     x++;
     printf("sub function\n x: %d\n", x);
     return 0;
}

int main()
{
     int a = 1;
     add(a);
     printf("mian function\n a: %d\n", a);
     return 0;
}

運(yùn)行結(jié)果:

sub function
 x: 2
mian function
 a: 1

這段程序中,我們?cè)谥鞒绦蛑新暶鞑①x值了一個(gè)變量 a, 接著,我們調(diào)用了一個(gè)函數(shù)。在這個(gè)函數(shù)中,我們對(duì)于傳遞進(jìn)來(lái)的變量 x 進(jìn)行了自加操作。然后向屏幕打印此時(shí)的變量值。在這個(gè)被調(diào)用的函數(shù)執(zhí)行完畢后,我們返回到了主函數(shù)中。然后再次輸出此時(shí)的變量數(shù)值。發(fā)現(xiàn)是沒(méi)有變化的。

3.2 引用傳入示例

使用數(shù)組示例

#include <stdio.h>

int add(int x[])
{
     x[0]++;
     printf("sub function\n x: %d\n", x[0]);
     return 0;
}

int main()
{
     int a[] = {1};
     add(a);
     printf("mian function\n a: %d\n", a[0]);
     return 0;
}

運(yùn)行結(jié)果:

sub function
 x: 2
mian function
 a: 2

這個(gè)示例程序中,我們采用了數(shù)組傳值的方式。其實(shí)這里只使用了一個(gè)只有一個(gè)數(shù)值的數(shù)組。其實(shí)和使用一個(gè)整數(shù)作為變量的效果是一樣的。我們首先初始化了一個(gè)數(shù)組,里面有一個(gè)數(shù)值 1 ,然后我們通過(guò)數(shù)組傳值到另外一個(gè)函數(shù)中。此時(shí)我們對(duì)這個(gè)數(shù)組中的數(shù)值進(jìn)行自加操作,然后顯式此時(shí)的數(shù)值。在這些操作結(jié)束后。程序返回到主函數(shù)中。然后顯式此時(shí)主函數(shù)中的數(shù)值。發(fā)現(xiàn)已經(jīng)同步發(fā)生了變化。

使用指針

#include <stdio.h>

int add(int *x)
{
     (*x)++;
     printf("sub function\n x: %d\n", *x);
     return 0;
}

int main()
{
     int a = 1;
     add(&a);
     printf("mian function\n a: %d\n", a);
     return 0;
}

運(yùn)行結(jié)果:

sub function
 x: 2
mian function
 a: 2

在這個(gè)示例程序中,我們使用了指針進(jìn)行傳值,這樣的話,被調(diào)用的函數(shù)傳遞進(jìn)去的和調(diào)用它的函數(shù)中的值是同一個(gè)值。這就是我們?cè)诒徽{(diào)用函數(shù)中進(jìn)行了自加操作后。原來(lái)函數(shù)的值也發(fā)生了變化。這個(gè)示例可以和之前的值傳遞的示例對(duì)照看。這兩個(gè)示例的步驟完全一致,只是傳值的方式不同,所以造成了不同的結(jié)果。

4. 小結(jié)

對(duì)于函數(shù)的參數(shù)的值的傳遞問(wèn)題,是程序中最容易出問(wèn)題的地方。有些時(shí)候我們希望在被調(diào)用程序中的數(shù)值變化可以直接影響到調(diào)用這個(gè)程序的程序的數(shù)值的變化,有時(shí)候我們反而不希望被調(diào)用的函數(shù)中的修改影響到原有程序中的數(shù)值。

所以我們?cè)跀?shù)傳遞的過(guò)程中會(huì)有兩種形式,一種是變量的副本的傳遞,另外一種就是直接將值本身直接傳遞進(jìn)去。通過(guò)副本的傳遞,在被調(diào)用程序中的任何修改只是局限在被調(diào)用程序中。那么其本身不會(huì)受到影響。而直接傳遞本身進(jìn)入函數(shù)中的傳遞,則會(huì)同步修改兩邊的變量數(shù)值。