1樓:匿名使用者
不能那樣給指標賦值
int a=3;
int *p=&a; //可以這樣在定義的時候初始化也可以這樣
int *p;
p=&a; //把a的地址賦給p
*p=5; //這樣給p指向的地址賦值
2樓:劉子超1號
p的資料型別是指抄
針,指標使用地址賦值襲,bai所以可以使用p=&a;
*是運算子,*p的數du據型別便不再是指標zhi,而是整型資料,使用dao整型資料賦值,所以可以使用*p = a;
但是*p=&a,『=』運算子左右兩側的資料型別不同,所以編譯時會報錯,不存在int*到int型的運算子過載。
3樓:匿名使用者
*p=&a這句話本來有錯誤,很明顯的。*p是一個值(指標指向的值),而&a是一個記憶體地址,應該這樣至少p = &a;明白不,大神!
8.在int a=3, *p=&a;中,*p的值是( )。
4樓:匿名使用者
p定義為一個指標,存放變數a的地址,在變數p之前上取數符*,故*p為a的數值3
5樓:匿名使用者
應該選b
可以分解為:
int a=3;
int *p;
p=&a;
所以*p為a的值,p為a的地址
6樓:匿名使用者
p=&a 指標變數p指向a 的地址 其值為 a的地址
*p=&a 為指向(指標變數p所指向的a的地址)其值為3
7樓:匿名使用者
答案是 3 呀
第一個*p是定義一個指標變數p,p指向a的地址第二個*p是從p指向的地址中得到值
就是3了
int a[2][3] ,*p[3] ,p=a為什麼是錯的 p[o]=a是對的
8樓:匿名使用者
語句整理如下:
int a[2][3] ,*p[3];
/*a[2][3]二維陣列;*/
/*p[3]指標陣列(注意:不是陣列指標)*/a可以作為地址
9樓:黃邦勇帥哥哥
要想使抄p=a正確,請使用
襲int (*p)[3];的宣告,該語句表bai示,指標p是一個指向含有三個元du素的zhi一維陣列dao的指標。而a[2][3]中的陣列名a,表示的是指向二維陣列第一行中含有3個元素的陣列的指標,因此可以對其賦值。陣列名不是像一樓說的a是指向的a[0][0],而是指向的a[0]也就是說a表示的是a[0]的地址&a[0]。
因為a=a+0,因此a+1指向的是a[1]的地址,即&a[1]。指向a[0][0]的是a[0]也就是說a[0]本身就是一個地址,你可以輸出a[0]就知道了。而*a[0]就能輸出a[0][0]的值。
即a[0]指向的是&a[0][0]
*p[3]表示的是宣告的一個指標陣列,在這個陣列中的每一個成員都是一個指向int型的指標,因此只能對p[0]賦於int型變數的地址,比如int i=1; 則可以使用p[0]=&i來賦值。同樣可以使用p[0]=a[0];或者p[0]=&a[0]
若有定義 float x 1 5 int a 1,b 3,c 2,則正確的switch語句是
若有定源義 float x 1.5 int a 1,b 3,c 2 則正確的switch語句bai是 duswitch a b 所以這一題選zhi擇c。switch語句的基本形式dao switch 表示式 對於swith 表示式 中的表示式,可以控制程式的執行過程,表示式的結果必須是整數 字元或列...
int a 2,b 3,c 4,d da bcjava中輸出是10,請問為什麼啊
1 b c 預設情況下 執 況是從左到右 b c 2 b 是在運算完之後才會 1,並不會把 1後的值帶入表示式中計算。d 3 3 4 10 a表示先自增1然後參與運算 a 表示運算後再自增1 在後面,先取值再自加。在前面,先自加,再取自加之後的值。變數的值 和 計算之後的值要分開來看的。此處 從後向...
在int a313,24,5,60中,a的值是A 3 B 2 C 6 D
相當於初始化陣列 int a 3 這個初始化對於這個陣列的前7個元素分別初始化為1,3,2,4,5,6,0,剩餘則全部初始化為0 這個陣列是2維陣列,給出第2維長度為3,那麼編譯器根據初始化的情況對第一維長度進行判斷,給出能容納所有初始化數值的最小長度。這裡編譯器應該選擇a 3 3 即初始化了個3x...