1樓:萬裡挑伊
int a;
定義:duint* p;
定義並賦值:int *point=&a;
賦值時zhi:
p=&a;
取值時:
int a=*p;
取值時:int b=*p;
指標dao其實跟普通變數的
回區別就在於它的記憶體裡裝的是答一個地址,而普通變數裡裝的是數值;
定義時加*,是為了讓編譯器認出它是一個指標,知道其記憶體裡裝的資料是地址。
而在使用時加*則是為了取出取出指標所指向的地址裡存的資料。
綜上,定義指標一定加* ,其它時候如果是取值則加*,否則不加。
有問題可以繼續**☺
2樓:
嚴格說來,指標什麼時候都不帶*。int *p,那個*是int的,不是p的。但為了在int下宣告不是指標的變數,規定在每個指標變數前加一個*,以便編譯器識別,這就使好多人誤以為*是指標變數的了。
3樓:幻月
定義指標格式是int*p;其中p是用來存放某個變數的地址的,如:int a,*p;p=&a;*p是表示指標p所指向的儲存單元中的
專值,如屬上面的a值,而p是a的地址(&a),當你需要呼叫a的值時,就用*p;呼叫a的地址時就用p.
4樓:匿名使用者
指標是c語言很重要的知識,建議仔細看看。
定義指標的時候是一定要加*的,這樣才會識別為指標。定義好了就不用加了。
當然如果指標指向函式a,用的時候也要加。
總之,分不同情況,看指標指向的是什麼了。
5樓:匿名使用者
帶*是指標的值,不是指標本身,不帶*才是指標本身。比如 int *p;p就是個指標變數,這時*p是沒有意義的,只有 p=new int;或把別的變數的地址賦給p,*p才有意義。
6樓:匿名使用者
二樓正解。不過指標指標的時候帶*,表示指標地址的時候,不帶
7樓:匿名使用者
宣告的時候必須帶* ;
使用的時候要取指標變數的值不帶*,此時取得的是一個地址;要取實際值加*,***
8樓:逍遙足球子
* 在於c語言當中對於指標來說,表明取出當前指標指向記憶體地址中的記憶體。
9樓:eva殤
帶*的情況
1.宣告的時候需要用*來表示宣告的物件是一個指標。如:int* p;
2.使用的指標的
專值的時屬
候。如:printf("p = %d",*p);
3.給指標賦值的時候。*p = 5;
不帶*的情況:
1.使用指標的時候。如:int a = 0; p = &a;(p是int*)
2.表示字串首地址的時候不用*。如:char* ch = "hello"; printf("%s",ch);
10樓:匿名使用者
宣告或者定義的時候帶*的話,說明它是一個指標型的變數,其它時候說明要給這個指標賦值!!
11樓:匿名使用者
對於指標的*最好和取地址&一起聯絡起來學
12樓:我姐是恐龍
同學這個不抄能硬背 要理解
帶*表示的那bai個記憶體
du地zhi址儲存的值
不帶*表示那個記憶體的地址
int *p,a; p是指標 a是整數daoint *p,*a; p是指標 a也是指標int *p=&a等價int *p; p=&a;
13樓:匿名使用者
int *ie;
int ir;
ie=&ir;//不帶星號代表地址吧
*ie=10;//帶星號代表指向地址的值
c語言指標什麼時候加星號什麼時候不加
14樓:吉祥二進位制
1、宣告及定義一個指標時,需要用*表示識別符號是一個指標。比如int *p;
定義一個內指標,p是int *型別,這裡的容*主要說明變數是指標型別。
2、作為間接訪問運算子
int a = 2;
int *p = &a;
printf("%d\n", p, *p);
以上面的例子來說:
p:是指標,是一個地址,它是int *型別。
*p:是指標所指記憶體中儲存的資料,是一個int型別。
15樓:匿名使用者
定義的時候加,如int *pt;定義了一個整型指標pt使用指標指向的地址內的資料的時回候加,如char arr="abc",*ptc=arr;*ptc='d';就把答arr[0]給改了
給指標賦值的時候不加,當然像上面定義的時候直接賦值是要加的,其他如int a=32,*pt;pt=&a;就是讓pt指向a
其他都不用吧
16樓:望風斬月
開始定義的復
時候加*,比如:int *p;/*這裡加制*是表bai示p是一du個int型的指標*/
指向值的時候加*,比如:int *p,a;*p=a;
指向地址的
zhi時候不加*,比如:int *p,a[10];p=a;或*p=a[0];
也就是一dao開始定義的時候的*是表明p是指標,但是到後面用的時候,p表示地址,*p表示p指向的"地址的值".ok???
17樓:
說的具體點,你這樣子我沒法說
c語言中指標的賦值語句中 那個*符號什麼時候應該帶什麼時候不帶?
18樓:匿名使用者
變數賦值給地址(指標),變數加&或者地址(指標)加*
比如意思都是p指標指向了a變數的地址。
19樓:冥王星的小家
#include
int main( )
a中的內容是5,&是取地址符,把a的地址賦給p指標。
p是地址,*p是內容。執行一下就知道。
c語言中指標加不加*有什麼區別
20樓:丶自由丨落體
剛開始學習
baic,同樣有這du個疑問,在網上zhi查了一下,沒
有什麼讓人一目了dao然的解釋。
專用int *x作為屬
例子。既然int *x 只是定義了一個記憶體空間,儲存一個記憶體地址,那麼普通的int x應該也可以做到。
int num = 5;
int *x = #
int x1 = #
x 和 x1 同樣儲存的是 num 的記憶體地址,但是隻有用了*宣告的指標能夠通過 *x 來訪問 num .
printf("%p , %p", x ,x1) // 這一行會輸出兩個一樣的記憶體地址。
printf("%d" , *x ) // 成立,不報錯,正常輸出 5。
printf("%d" , *x1 ) // 不成立,編譯器會報錯,『*』的運算元必須是指標。
第二個變數名使用x1的原因是,當你嘗試 printf 輸出的時候,指標 *x 會強行覆蓋普通的 x 。
21樓:匿名使用者
不加*取地址,加了*取地址裡的內容
22樓:匿名使用者
比如 int a=5; int *p =&a; p就是5的地址 *p就是p地址上的內容5
23樓:匿名使用者
因為在bai函式形參中 a是指標(du地址),所以zhi char *t定義的是dao
指向字元的指回針
你記住在初始化的答時候就是這麼定義的
初始化指標例子
int h = 5;
int * pt = &h;
在這種情況下,被初始化的是指標,而不是它指向的值。也就是說,上面的語句將pt(而不是*pt)的值設定為&h
24樓:鈕玉芬孛辰
基本來上沒有區別,c++僅僅只是在c語言
自的基礎上bai
增加了物件導向的概念,所du有它又被稱為zhi是「帶類的daoc」,因此,c++在指標操作上增加了指向物件的指標(引用);但究其本質而言,指標仍然是記憶體中的地址,這一點沒有改變.
25樓:hay暗夜
不加就不是指標就像是定義陣列的。這是一種語法規則
26樓:狼性我行我素
加*號代表的是訪問指標儲存地址上的資料!
不加*號就代表的給這個指標變數賦值只能是指標!
27樓:碧血玉葉花
加不加bai括號,是
陣列指標,還du是指標陣列zhi的區別
*p[2] 是一個指標dao陣列,內首先它容是一個陣列,陣列中存的是指標,存指標的陣列。
(*q)[2] 是陣列指標,加括號先與 *結合,它是一個指標,指向一個第一維包含2個元素的2維陣列,存陣列地址的指標。
q=s ; 把 陣列 s 的地址存入 qp[0]=s[0] 把s[0] 第0行的首地址存入 陣列p[0]中
28樓:匿名使用者
問題描述的不是很清楚
c語言中a b什麼時候,c語言中a b什麼時候
a b中的 是按位與操作,其規則為,當a和b對應位上的值均為1時,結果的該位上為1,否則結果該位上為0。即1 1 1 1 0 0 0 1 0 0 0 0 所以,a b結果為1的情況有很多種,只要a和b的最低位均為1,其它位上均不同時為1即可。如0x33 0x41 或0xff 0x01等等。符號 在c...
c語言中怎麼用,什麼時候用什麼時候用
是賦值.是判斷.當要給變數一個值的時候用 比如a 3 當判斷是否相等用 比如if a 3 賦值的時候用一個等號 a 3 將3賦值給a 比較的時候用兩個等號 if a b 判斷a和b是否相等 是數學裡的等於 是賦值 例如int i 3 是為整型變數i賦值為3if i 3 判斷如果i等於3 是判斷關係,...
C語言中,什麼時候用float,什麼時候用double?麻煩順便舉個例子,謝謝
堅涵蕾老霖 一般用float就可以滿足要求,float和double都用來定義浮點數,也就是小數,兩者就是有效位數不同,float為7 8位,double是15 16位,看你需要什麼精確度的數了 再不清楚的話,就隨便找個數,分別以float和double格式輸出,看看輸出的數有什麼區別就懂了 要看數...