亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C 語(yǔ)言基礎(chǔ)教程

C 語(yǔ)言流程控制

C 語(yǔ)言函數(shù)

C 語(yǔ)言數(shù)組

C 語(yǔ)言指針

C 語(yǔ)言字符串

C 語(yǔ)言結(jié)構(gòu)體

C 語(yǔ)言文件

C 其他

C 語(yǔ)言參考手冊(cè)

C 語(yǔ)言指針與函數(shù)

在本教程中,您將借助示例學(xué)習(xí)將地址作為參數(shù)傳遞給函數(shù)。此技術(shù)稱(chēng)為“引用調(diào)用”。

在C語(yǔ)言編程中,也可以將地址作為參數(shù)傳遞給函數(shù)。

要在函數(shù)定義中接受這些地址,我們可以使用指針。這是因?yàn)橹羔樣糜诖鎯?chǔ)地址。讓我們舉個(gè)實(shí)例:

示例:通過(guò)引用致電

#include <stdio.h>
void swap(int *n1, int *n2);

int main()
{
    int num1 = 5, num2 = 10;

    //傳遞num1和num2的地址
    swap( &num1, &num2);

    printf("num1 = %d\n", num1);
    printf("num2 = %d", num2);
    return 0;
}

void swap(int* n1, int* n2)
{
    int temp;
    temp = *n1;
    *n1 = *n2;
    *n2 = temp;
}

運(yùn)行該程序時(shí),輸出為:

num1 = 10
num2 = 5

使用swap(&num1, &num2);將num1和num2的地址傳遞給swap()函數(shù)。

指針n1和n2接受函數(shù)定義中的這些參數(shù)。

void swap(int* n1, int* n2) {
    ... ..
}

當(dāng)swap()函數(shù)中的*n1和*n2發(fā)生變化時(shí),main()函數(shù)中的num1和num2也會(huì)發(fā)生變化。

在swap()函數(shù)內(nèi)部,* n1和* n2被交換。 因此,num1和num2也被交換。

注意,swap()不返回任何東西。 其返回類(lèi)型為void。

該方式在C語(yǔ)言編程中稱(chēng)為“引用調(diào)用”。

示例2:將指針傳遞給函數(shù)

#include <stdio.h>

void addOne(int* ptr) {
  (*ptr)++; //在*ptr上加1
}

int main()
{
  int* p, i = 10;
  p = &i;
  addOne(p);

  printf("%d", *p); // 11
  return 0;
}

這里,存儲(chǔ)在*p值最初為10。

然后我們將指針p傳遞給addOne()函數(shù)。ptr指針在addOne()函數(shù)中獲取這個(gè)地址。

在函數(shù)內(nèi)部,我們使用(*ptr)++;將存儲(chǔ)在ptr上的值增加1。因?yàn)閜tr和p指針都有相同的地址,所以main()中的*p也是11。