1樓:匿名使用者
int a(int *p)這個的引數是一個int型別的一級指標int a(int &p)這個引數是一個int型別的引用int a(int p)這個引數是一個int型別的變數int a=10;
int *p=&a;這個p就是第一個函式的引數的實參int &p1=a;這個p1就是第二個函式的引數的實參int p2=a;這個就是第三個函式的引數的實參指標->相當於物件的.
例如struct nq;
n *n1=(n *)malloc(sizeof(n));
n1->a=10;
n n2;
n2.a=10;
明白了吧 -> 和. 就是呼叫當前物件的某個變數函式的引數型別都不一樣那麼使用起來引數當然不一樣了老闆讓你去買一隻羊
結果你買了一匹馬 你不被炒魷魚誰被炒
2樓:匿名使用者
int a(int *p)
p是一個int指標,傳入的引數也是一個指標(陣列名也當作指標)或者是一個int變數的地址
int a(int &p)
p是一個int變數的引用,這是c++中的概念,不能放在c語言程式中,否則會有語法錯誤.
int a(int p)
p是一個int型別的值,傳入的引數是一個整數,或者是一個int變數->是結構體/聯合體指標的成員指向操作符,例如:
struct ae,*p;
p=&ae;/*p指向ae*/
那麼p->a就相當於ae.a
=是賦值操作符,與->無關,基礎以上宣告的以下兩個賦值語句是等價的:
p->a=1;
ae.a=1;
3樓:
第一個*p表示的是一個指向整數型別的指標;第二個&p表示的是整數型別p的地址(也可以理解為引用,注:此功能只能在c++中使用);第三個p表示的是一個普通整數型的資料。
指標中「->」符號一般應用在結構體或者c++的類中,表示的是結構體或類中的成員變數;「=」符號是賦值符號; 兩者沒有任何關係。
4樓:匿名使用者
int a(int *p),其中*p表指標變數;
int a(int &p)其中&p表取p的地址;
int a(int p)其中p表整型變數;
->表指向
=表賦值
5樓:
如果不考程式的其它部分,單看這些列出的函式,應可以理解為:
int a(int *p) 這個函式可得到一個傳入的int型的指標變數
int a(int &p) 這個函式可得到一個傳入的int型的引用int a(int p) 這個函式可得到一個傳入的int型的變數
6樓:匿名使用者
第一個是指標,傳送的是地址值;第二個是地址,直接傳地址(這好像是c++的東東);第三個是值,直接傳值。
C語言的小問題,C語言的一個小問題
int型變數在系統中佔用2個位元組的儲存空間 也就是16個bit char型變數在系統中佔用1個位元組的儲存空間,1個位元組由8bit組成,也是就8個0或1組成的。這裡所謂高位就是c 1 低位就是c 0 因為系統分配記憶體時是按照c 0 c 1 的次序分配的,分配在前面的稱低位。因為是共用型,記憶體...
有個關於C語言的小問題,關於C語言的一個小問題
include int main 關於c語言的一個小問題 if語句不能這樣用,當需要判斷多個條件時,需要各自用括號括起來,再用邏輯與符號 或者邏輯或符 連線。貼段 給你參考,功能是a,b,c三者相等時輸出case 1,我用gcc編譯器驗證過了。include int main void else p...
c語言的小問題?c語言的問題?
int 型資料大小是有限制的。修改 int a 修改為 char a scanf d a 修改為 scanf s a 這個與整型變數所佔的位元組數有關吧 一個int型變數值的範圍為 2的15次到2的15次 即是 32768到32767 整型變數int的範圍為 32768到32767 你的123456...