C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

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

C 語言文件

C 其他

C 語言參考手冊

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

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

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

要在函數(shù)定義中接受這些地址,我們可以使用指針。這是因為指針用于存儲地址。讓我們舉個實例:

示例:通過引用致電

#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;
}

運行該程序時,輸出為:

num1 = 10
num2 = 5

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

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

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

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

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

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

該方式在C語言編程中稱為“引用調(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;
}

這里,存儲在*p值最初為10。

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

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

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清