1樓:諸葛飛章邢慈
這裡,p1
是指標變數,指標變數儲存的是一個記憶體地址。t=p1,錯誤,無法將int*
轉換成int。
t=*p1,這裡的
*p1代表的是變數
p1中儲存的指標(記憶體地址)指向的記憶體中儲存的資料。
2樓:百長平位寒
p1是地址,t不是指標變數不能指向p1的地址,只能將p1的值賦給它:*p1;
&a;取地址,代表a的地址位置
定義的初始化時候用*p=(還有作為條件比值大小時),一般賦值改變指標指向都是p=;
3樓:逯智偉罕寧
char*p="abc";
是在記憶體開闢4個位元組的儲存空間,依次存放'a'
'b''c'
'\0'
4個字元
並把存'a'的那個位元組的地址
賦值給指標p
char*p;是說
定義一個指向字元型資料的指標p
指標p在記憶體中以
unsigned
int資料型別存放
而非以char型別存放
*p=*(p+0)=p[0]
4樓:匿名使用者
char *name; //這只是個指標 ,沒有指向記憶體空間,你怎麼輸入呢?
面name[10]; //name 是指向10個char 大小的空間存放字元,
你改成這樣也對
char name[10];
char *ptr=name;
cint>>ptr;
5樓:匿名使用者
第一個沒賦初值所以是錯的 ,第2第3把這指標搞成空指標了,
最後用結構體來實現是可以的
6樓:匿名使用者
cin>>*name;
這樣就行了。
7樓:匿名使用者
沒有開僻空間,你輸入的資料存哪?
c語言指標的賦值問題C語言指標的賦值問題
指標在用要注意初始化,例如 int p p為指標,地址是未知的,如果直接賦值 p a 這樣編譯可以通過,但是會產生警告,p的地址是隨機分配的,這樣對未知的地址賦值很危險,可能會覆蓋掉某些重要資料,所以避免這種危險,在定義指標時注意初始化,也就是賦值。可以int p a 或者int p p a 然後再...
C語言中可以給指標變數賦值常數嗎
1 申請了空間 在常量區 存放了字串 2 在字串尾加上了 0 3 返回地址,這裡就是返回的地址賦值給了p 字串常量 hello 出現在一個表示式中時,hello 表示式使用的值就是這些字元所儲存的地址 在常量區 而不是這些字元本身。所以,可以把字串賦值給指向字元的指標p,而不能把字串賦值給一個字元陣...
c語言中,空指標申請了記憶體但未賦值,它還是空指標麼
這裡的表達很不清楚。申請記憶體時實際就是從內 的堆 中,指定沒 有使用版的一塊區域來存權儲某個資料,區域的大小也就是位元組數在申請時已經傳遞給了記憶體申請函式,返回的指標就是這個區域的首地址。返回的指標賦值給某個變數,以後就可以通過這個指標變數來使用 儲存或者是讀取 所分配的這一塊記憶體區域了。所以...