目錄
一.函數參數
二.函數參數和指針變量
三.視頻教程
一.函數參數
函數定義格式:
類型名 函數名(函數參數1,函數參數2...)
{代碼段
}
如:
int sum(int x,int y)
{return x+y;
}
函數參數的類型可以是普通類型,也可以是指針類型。什么時候使用指針類型呢?
二.函數參數和指針變量
例:
在主函數中有倆個整數并存入變量中,然后在被調函數中將這倆個變量的值互換。
如果不使用指針變量作為函數參數,我們這樣寫。
#include <stdio.h>void swap(int a,int b)
{int c;c = a;a = b;b = c;printf("a is %d,b is %d\n",a,b);
}int main(void)
{int a = 1;int b = 2;swap(a,b);printf("a is %d,b is %d\n",a,b);return 0;}
運行結果:
a和b只在swap函數中被調換了。如果不使用指針變量,我們可以這樣修改:
#include <stdio.h>int a = 1;
int b = 2;void swap(void)
{int c;c = a;a = b;b = c;printf("a is %d,b is %d\n",a,b);
}int main(void)
{swap();printf("a is %d,b is %d\n",a,b);return 0;}
運行結果:
雖然成功實現了a和b值的互換,但是swap函數非常不靈活,只能交換a和b的值,基本上寫死了。
如果我們使用指針變量作為參數會發生什么事情呢?
#include <stdio.h>void swap(int *a,int *b)
{int c;c = *a;*a = *b;*b = c;
}int main(void)
{int a = 1;int b = 2;swap(&a,&b);printf("a is %d,b is %d\n",a,b);return 0;}
運行結果:
分析:
使用指針變量作為參數成功實現了a和b互換,而且swap函數非常靈活,可以在任意函數中調用。這個就是指針作為函數參數的意義。
三.視頻教程
64.函數參數和指針變量_嗶哩嗶哩_bilibili