根據參數類型以及函數實現的功能綜合判斷。
專注于為中小企業提供做網站、成都網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業永川免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了數千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
注意不能單單看是否為指針。
要傳遞類型為A的值,如果參數類型是A*,那么為傳地址,反之,如果參數類型是A,那么是傳值。
比如,要傳遞int型參數:
1 傳值:
void func(int a);
2 傳地址:
void func(int *a);
而傳遞char *型參數。
1 傳值:
void func(char *a);
2 傳地址:
void func(char **a);
同樣是char *類型的參數,有可能是傳值,也有可能是傳地址。具體取決于函數實現功能。
常數沒有地址!!!它和變量不一樣。
但是你既然是通過DMA獲得的一個常數,那么肯定不是通過123這樣的方式調用的,而是保存在某個變量中的,那個變量可以用取址
是。在C語言中,一個函數的函數名其實就是一個地址,即該函數的入口地址。我們可以聲明一個函數指針,并將函數的入口地址(函數名)賦值給這個指針,然后使用這個指針來調用具體的函數。
可以通過函數指針(也就是你說的函數地址)調用,可以這樣使用:
#include
int
fun(int
a)
{
printf("a
=
%d\n",
a);
printf("hello
world\n");
}
int
main()
{
int
(*pFun)(int
a);
pFun
=
fun;
(*pFun)(123);
return
0;
}
輸出結果:
123
hello
world
變量是存放在內存中的,只要是存放在內存中的二進制數就會有一個內存的地址,所有變量是有地址的!
那函數是什么呢?函數是由一些運行的語句組成的,程序運行的時候就會把函數中的語句調用到內存中去,那么函數代碼在內存中開始的那個內存空間的地址就是函數的地址!
至于函數中用的變量的地址并不是放在代碼區的,一般都放在另外的兩個地方,其實地址上是有很大的差值的
希望你能理解上面的內容,祝愿你學習C語言能馬到成功!
當前文章:c語言函數調用是否有地址 c語言函數調用地址傳遞
網頁網址:http://vcdvsql.cn/article36/hepcpg.html
成都網站建設公司_創新互聯,為您提供外貿建站、網站營銷、品牌網站制作、電子商務、動態網站、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯