1樓:匿名使用者
int *p;
int a=1;
p=&a;
p定義成了bai乙個整du型指zhi針,而a定義成了乙個初始值為1的整型變數。
dao指標是用來儲存內對應容型別的變數的位址的,所以p=&a;的意思是用指標p來儲存變數a的位址。
而如果同時定義int *p;int p;會發生編譯時錯誤,因為p重複定義了。
2樓:匿名使用者
同乙個作用域
內(比如同乙個**塊),不能重複定義變數,所以int *p;
int p;這樣的**是不能通過版編譯的
如果是不同的權作用域,那麼它倆並沒有什麼關係若是類似下面的定義:
int a;
int *p = &a;
表示p儲存了a的位址,或者說p指向a。
c語言中 int*p[4] 和 int(*p)[4]的區別是什麼?
3樓:匿名使用者
int*p[4]是指標的陣列
,也就是說它
是乙個陣列,陣列裡存的是乙個個的指標
int(*p)[4]是陣列的指標,也就是說它是乙個指標,指向的是乙個陣列。指標指向的型別會影響到指標加減運算時位址的位移。比如說有乙個陣列 int a[4],加上取址運算子 &a,這個表示式的型別就是指向陣列的指標,可以這樣賦值 p = &a;。
一般用於向函式傳遞二維陣列的時候使用這種型別,這時還有一種更直觀的寫法
void matrix_sum(int matrix_a[4], int matrix_b[4])
這種寫法和
void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4])
是等價的。
4樓:望闌珊將盡
結合性不一樣:前者是指標陣列,為4個int指標的陣列,有4個元素;後者是陣列指標,為乙個指標,型別為指向包含4個int型別元素的一維陣列的指標。
c語言中,定義int型變數a指標*p,那麼,*p=&a和p=&a是什麼區別?
5樓:匿名使用者
只能int *p=&a或者int *p;p=&a;
6樓:匿名使用者
定義int型別變數a和指標*p,則指標p存的是乙個int型變數的位址,即可以表達為:p = &a;
*p存的是int型變數的指,即p指標指向位址的內容,所以可*p = a; 當你用*p = &a時,編譯器會認為指標的值表示了位址,編譯報錯。如果你真想這樣表示,也可以,只需要將位址強轉為int型,即
*p = (int)&a;
7樓:天河宙
你要先int *p然後才能p=&a
8樓:匿名使用者
p是位址 &a是位址,*p是p位址對應的值
9樓:白花戀歌
去看 c和指標 這本書,有非常詳細的關於指標的幾乎所有的問題,&a表示取變數a的位址,根據宣告,*p表示訪問指標所得到的整形變數,一般情況下位址不能賦值給整形變數,如果非要這麼做,只能使用強制型別轉換
10樓:匿名使用者
*p 是錯的。。。。
若有定義:int **p;則p是乙個什麼變數
11樓:
p是指標變數.
int *******p;
不管你寫多少個 * 號 p 都是指標變數
這個變數儲存的資料是 乙個記憶體的位址
12樓:匿名使用者
對於int **p來說,p所指的物件是指標,那麼++p就是讓p的值增乙個指標的大小,雖然指標所指對像可大可小,但是指標自己的大小卻是一定的,目前的系統上一般是4位元組(64位系統我沒用過,可能是8位元組)。也就是說,對char *p和long *q來說,p和q本身佔記憶體容量是一樣大的(雖然char和long佔記憶體不一樣大)。
很多人以為「指向陣列的指標」就是「指向指標的指標」,於是有人寫這樣的**:
int a[2][3];
int **p = a;//錯誤
這個**的錯誤之處在於a是乙個陣列,它的成員也是陣列,所以a叫做「陣列的陣列」——c++中嚴格說來沒有二維陣列。那麼,你要用乙個指標來記錄a,就要用乙個能表示「陣列的陣列」的指標,以下**是正確的:
int (*p)[3] = a;//正確
只有這樣才能保證++p使p指向a的下一對像(該對像是乙個陣列)。
順便提一句:不要寫成「int *p[3];」
13樓:羽龍飛
**p是指向指標變數的指標。、
舉個例子就很明白了
int a=10;
int *pia;
pia=&a;
int **p;
p=&pia;
則*p就等於pia;
**p就等於*pia,而*pia等於a,即**p等於a=10;
c語言結構體定義了,C語言結構體 定義了typedef struct int key element 能否在main函式裡定義element x
bai。太強大了。翻譯過du來是這樣zhi的。定義 型別dao 型別名。簡單說。int是整型內。容那element 就相當於int a中的a,struct相當於int。理解麼?不理解。換個,陣列名。就是element,陣列就是 struct key就是陣列裡面的 i。這樣該懂了吧。沒有名稱的結構體就...
C語言中定義函式,變數是指向指標的變數,呼叫時要怎麼呼叫
首先fact函式返回的是double型別,第乙個引數是double型的二維指標.所以是 c i fact c,y,z 因為double c 3 是二維double指標,c i 是乙個double一維指標,c i 就是double型資料。c是二維指標,可以傳過去 c i fact c,y,z c i ...
C語言如果用指標去使用變數,和直接使用變數有什麼不同
指標是c語言中的乙個重要概念,也是c語言的乙個重要特色。正確而靈活的運用它,可以有效地表示複雜的資料結構 能動態分配記憶體 方便地使用字串 有效而方便地使用陣列 在呼叫函式時能獲得乙個以上的結果 能直接處理記憶體單元位址等 c程式設計 第三版 你在舉例的時候說的直接引用資料的時候是幾乎沒有區別的,陣...