c语言实参形参函数调用指针引用 符号实例,C语言实参、形参、函数调用、指针、引用、符号实例.doc...
C語言實參、形參、函數調用、指針、引用、符號實例
C語言實參、形參、函數調用、指針、引用、*&符號實例
實現環境:VC6
程序源代碼:
#include "stdio.h"
#include
void fun1(int a) //傳值調用
{
printf(" 形參a為:%d\n",a);
a--;
printf(" 形參a變為:%d\n",a);
}
void fun2(int *b) //指針調用
{
printf(" 指針形參b為:%X\n", b);
printf(" 指針形參b所指內容為:%d\n", *b);
(*b)--;
printf(" 指針形參b所指內容變為:%d\n", *b);
}
void fun3(int &c) //數值的引用調用,相當于給數值實參n起個新名字叫c,然后c就是實參n
{
printf(" 引用數值形參c的地址為:%X\n",&c);
printf(" 引用數值形參c為:%d\n", c);
c--;
printf(" 引用數值形參c變為:%d\n", c);
}
void fun4(int * &d) //指針的引用調用,相當于給指針實參m起個新名字叫d,然后d就是實參m
{
printf(" 引用指針參數d為:%X\n", d);
printf(" 引用指針參數d所指內容為:%d\n", *d);
(*d)--;
printf(" 引用指針參數d所指內容變為:%d\n", *d);
}
void main()
{
int n=11; //有11個蘋果
printf("實參n為:%d\n",n);
fun1(n); //傳值調用
printf("數值n為:%d\n\n",n);
printf("實參n的地址為:%X\n",&n);
printf("數值n為:%d\n",n);
fun2(&n); //指針調用
printf("實參n的地址為:%X\n",&n);
printf("數值n為:%d\n\n",n);
printf("實參n的地址為:%X\n",&n);
printf("數值n為:%d\n",n);
fun3(n); //數值的引用調用
printf("實參n的地址為:%X\n",&n);
printf("數值n為:%d\n\n",n);
int * m;
m=&n;
printf("數值n的地址為:%X\n",&n);
printf("數值n為:%d\n",n);
printf("指針m為:%X\n",m);
fun4(m); //指針的引用調用
printf("數值n的地址為:%X\n",&n);
printf("數值n為:%d\n",n);
printf("指針m為:%X\n\n",m);
}
參考內容:
VC++中形參什么時候需要加&符號
引用不是必須的,因為用指針可以達到相同的效果當你傳遞的實參值需要在函數中獲取改變的時候,就需要傳引用或者指針 假設有 n = 10 個蘋果void fun(int m) //傳值函數,每調用一次減少一個蘋果fun(n);//如果按上面的聲明 ,這樣調用完后,n還是10,并沒有變成9在這種時候就需要用到引用或者指針void fun(int &m) ; //引用類型函數聲明 ,對應調用fun(n);void fun(int *m); //指針類型函數聲明 ,對應調用fun(&n);具體的函數體可以自己去寫事實上,引用的本質就是指針,使用引用能完成的事情,使用指針同樣能完成 ,不過引用看上去更簡潔和直觀
在形參表中以符號“&”開始的參數即為引用參數。如果一個形參是引用參數,調用部位將把實參的地址傳遞給子程序。子程序操作的是真正的變量,而不是它的副本。
如果程序員想修改指針本身,而不是指針引用的對象那么他可以聲明一個參數,該參數是一個指針的引用,例如:下面是交 換兩個指針的函數1
2
3
4
5void ptrswap( int * & v1, int * & v2 ) {?
?int *tmp = v2;?
?v2 = v1;?
?v1 = tmp;?
}如下聲明? int * &v1;?? //實際是為指針取了一個別名,這樣就可以通過別名改變指針本身應該從右向左讀,v1 是一個引用,它引用一個指針,指針
總結
以上是生活随笔為你收集整理的c语言实参形参函数调用指针引用 符号实例,C语言实参、形参、函数调用、指针、引用、符号实例.doc...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言赋值小数,c语言中将一个浮点型赋值
- 下一篇: c语言入门自学书籍推荐6,菜鸟自学嵌入式