1樓:蒙面侍衛
一、int *p=&a;換成int *p;*p=&a;就出錯了,這是為什麼?
答:int *p意思是定義一個指標p。記住,這以後p代表的是一個指標了。因此下一句應該寫為p=&a。
二、另外就int *p=&a而言,&a返回的不是a的地址嗎,那*p不就等於a的地址了?
答:是p等於a的地址。順便說一句,此後的*p中的*號是間接訪問去處符,*p的意思是指標p所指向的變數的值。即*p=a。
關鍵處在於你要區分定義時的*p和定義後的*p不是同一回事。定義後p已經是一個指標,而定義前p只是一個變數名。
2樓:匿名使用者
int *p是給指標定義的,*p表示指標指向的變數,而p指向該變數的地址。
3樓:匿名使用者
int *p是定義一個int型的指標。
可以用&把a的地址取出並賦給p。
但是你先定義了指標p。
*是間接定址運算子。
*p就是一個int型的了。
不能把一個地址賦給他。
4樓:匿名使用者
變數名重複了,有沒有過載,你定義了兩個相同的變數,因該這麼寫
int *p;
p=&a;
5樓:
int *p = &a,&a是一個地址,地址中儲存的內容為a,而*p是一個指標,指向的是這個地址,因此,這個語句中*p指的就是a
而對於int *p;*p=&a,這句話的意思,是指*p這個指標指向的是存放a這個變數的地址,因此,此時p中儲存的是一個地址,這個地址中儲存的又是a這個變數在記憶體中存放的地址
6樓:有錢買不起房子
int *p=&a;
這種方式是定義一個指標變數,並同時初始化
而int *p;p=&a;是2條語句,定義一個指標變數p,在讓p指向a的地址
指標的數值是儲存其他變數地址,*是間接獲取數值的
7樓:匿名使用者
同學,定義語句中int *p=&a; 這兒p前面的「*」是說明p是指標的一個標誌,存放a地址的是指標變數p,而不是*p,*p是地址裡存放的值,也就是變數a的值,是3。
int *p=&a;和int *p;p=&a; 當然是等價的,記住定義時指標變數前的「*」是指標的標誌,而指標變數只是p。
8樓:倒黴熊
int *p; 是宣告一個指向整型的指標,此時*是型別宣告符的一部分,也就是 int * 指明瞭p的型別。
*p;這種形式,代表了其指向地址上儲存的值,例如 int *p = &a; 則 *p與a是等價的,此時*是作為地址解除符使用的。
p是指向地址的,也就是與&a等價。
9樓:匿名使用者
說實話,這內容我忘了。為了回答樓主。我看了下書,總算回憶起來了。
看下面的語句:
int* iptr;
int icount = 18;
iptr = &icount;
這裡涉及到一個型別匹配的問題。
iptr實際是一個地址值。將地址值賦給地址變數肯定沒問題。
*這個符號有間接引用的意思。就是指向這個地址所指向的變數,這變數可能是任何型別。如果第三句是:
*iptr = &icount; 的話,就是把一個地址賦給一個未知型別的變數。所以會出錯。
差不多就這樣吧,我也是半桶水,歡迎樓主與我一起**。
10樓:叫撒名字啊啊啊
朋友,錯誤的原因是這樣的。
首先,*p是一值,&a是一個地址;
在你定義指標的時候,int *p就是一個指標,他是指向某一單元的指標,所以你可以吧&a賦值給他並且不報錯,但是你如果先定義int *p。然後在用*p=&a,那就肯定是錯誤的了。原因是你企圖用一個地址給一個值賦值。
error c2440: '=' : cannot convert from 'int *' to 'int'
這是執行錯誤的提示,你用一個int*企圖給一個int變數賦值,所以是錯誤的。
11樓:匿名使用者
#include
#include
using namespace std;
class teacher
; void teacher::display()teacher::teacher(string t,string n,char s,int a,int te,string ad)
class cadre
; cadre::cadre(string p,string n,char s,int a,int te,string ad)
void cadre::display()class teacher_cadre:public teacher,public cadre
void show()
private:
int wages;
}; int main()
12樓:匿名使用者
int *p;
p=&a;
c語言問題求教 關於指標變數問題
你不知道為什麼會這樣?其實,這個也很好理解的。因為你的p是指向int型資料的,而int型資料在你的編譯器中佔用的是4個位元組,所以你的結果才是 2,而不是 8.就拿你這個程式來說吧。p指向的是記憶體單元1638212。但是p 1指向的確實1638212 4.而不是1638212 1.這是由你的資料型...
c 整型指標賦值的問題,C 整型指標賦值的問題
你好,你應該通過malloc申請空間,或者是用陣列 現在你這樣p i指向的是一個未知空間,可能是系統需要用到的,不允許你更改內容,即使允許你這樣也是不對的,因為這個空間屬於這個程式,用它就是錯誤的。你只申請了一個int的空間,卻操作了256個int,當然不對了 char p abc 是在記憶體開闢4...
關於C 指標
cin.getline就是獲得一個最大長度不超過20個字元的 19或者19以下 的字串,儲存在buffer裡面,這個時候buffer裡面已經儲存了一個字串 例如 abcde 0 因為c字串是以 0結束的。然後,將這個字串傳給函式str的時候 while str1 如果str的內容為0,那麼while...