1樓:匿名使用者
&pt=1244996 是pt的地址
*p++ 後 ,*(p++) p++優先順序高,因此 地址變為了 1245000(注意整形指標+1,其實就是+4,因為整形的size是4位元組)
*p=1245064 是地址1245000 對應的記憶體值,是不確定的 。
&p=1244992 ,是p這個指標本身在記憶體中存放的位置,這個也是不確定 的。
2樓:
指標變數的值為記憶體地址值,這個值由作業系統管理。
*p++; //p原來指向pt的,加1後指向了一個未知單元,因此*p的值是不確定的。
3樓:無憂網事
*p 就是 pt啊。
*p++ 就是 (*p)++,也就是pt++
4樓:匿名使用者
*p++;實際是 *(p++);這麼解釋
p指向了pt後的下一個單元,值不確定
要用指標對指向的值字尾遞增應該加括號 (*p)++;
*和++的優先順序雖然一樣,
但字尾自增++是左結合,解指標引用*是右結合所以p先結合字尾++在結合解引用*
5樓:匿名使用者
*p++與(*p)++不同,導致此結果
關於c++中指標變數的問題
6樓:
一、int *i_point=1000;是明顯的語法錯誤。因為,等號左邊是宣告i_point是int *型變數(即指向int變數的指標變數)——這裡一定要注意*不是i_point的而是int的;右邊是不加說明的整數,預設是有符號整數,所以等號左右型別不匹配,連編譯都是過不了的!如果程式設計師想把1000當地址賦給i_point,那得寫int *i_point=(int *)1000;,把1000強制為int *型地址才對。
二、*i_point=3;當然是正確的。因為這條語句中的*前沒有別的符號,它就是獨立的操作符,作為單目操作符時它是取後面變數i_point指向的目標的值的意思,那麼=3則是讓這個i_point指標指向的目標的值=3,顯然是合法的。
*在宣告語句中只是個記號,表示某種變數型別的指標,沒有其他意義,而在其他運算語句中是取值操作符(單目)或乘號(雙目)。掌握這一點,類似問題迎刃而解!
7樓:匿名使用者
int *i_point=1000;這條語句的含義也就是把1000賦值給i_point變數自己!即:把1000當作地址值,賦值給i_point變數
按理論,這裡不會出現語法上的錯誤而出現的應該是執行結果的錯誤!(同意你的看法)
但是有的編譯器可能會做這種檢查,對有這種直接給指標變數賦值常數進行錯誤報警或警告。有的編譯器則忽略這種操作!
8樓:匿名使用者
你在那裡看到的啊?
其實這個語法是對的,只是實際上是不是這樣,那要具體問題,具體分析。
c++指標變數它本身存放在哪?
9樓:物理公司的
指標變數,它是一個變數,而且不管他指向什麼型別,他的大小都是恆定的(4個位元組)。
不要把指標看成什麼奇特的東西,他就是一個普通的變數,只不過他和int型別不同之處在於,他儲存的資訊是一個地址。
至於他本身的地址是怎麼儲存的,你可以問一下自己一個int型的資料的地址是怎麼儲存的。
10樓:可樂不加冰
指標變數的存放,需要了解c++的記憶體機制,一般來說分為堆和棧區,堆區一般是new出來的物件,而指標並非這樣,所以指標可以指向的是堆區和棧區的任意位置。
所以本質上,指標還是存放在記憶體模型中的棧區的。一般棧區小,堆區是棧區的幾倍。但堆區的效率沒有棧區高。
c/c++中指標本身的值和指標指向的值有什麼區別?
11樓:匿名使用者
指標本身pa的值是一個變數的地址&a,而指標pa指向的值是變數a的值,不知道說清楚沒有。
12樓:極天異雲
1.指標本身是一抄個變數,存放的值襲是32位的無符號整數,這個整數是一個32位的地址。
2.通過這個32位的整數地址值,可以找到另外一個資料,就是這個指標指向的資料了,可以是任何了型別的資料。也就是指標指向的值了。
13樓:匿名使用者
指標本身的值是一個地址
指向的值是該地址裡面儲存的值
指標本身的值也是儲存在一個地址中的
14樓:南坪中學校帥
指標本身的值是指標指向值的首地址
char *p="123456"
p指向的是"123456"的首地址 也就是"1"的地址.
15樓:
指標的值是指 指標存放的變數的地址。
指標並不指向什麼什麼的值。
16樓:匿名使用者
指標本身的值是它所指向的變數在記憶體中的地址 。指標指向的是你的資料或者操作。
17樓:匿名使用者
指標本身的值是它所指向的變數在記憶體中的地址
c++中一個指標為什麼不能指向自己本身
18樓:獅子東東
直接定義即可。比如已有一個類class a, 再定義一個類class b,這樣在b的定義中,就可以有一個a*型別的成員變數。 比如 class b ; 這裡的b::
a就是一個a*型別的指標。 需要注意的是,要使用這種形式的定義,要麼a的定義在b的上方
19樓:
指向自己還用指標有什麼意義。。。
c\c++指標變數怎麼賦值給普通變數。
20樓:
指標變數指向的是一塊記憶體區域,是一個記憶體地址,我們要的其實是指標變數指向記憶體區域地址的內容,我們可以用去內容作用符int *p = new int; int i= &p;可以取出指標指向記憶體區域的內容,然後將取出的內容複製給普通變數,但是指標指向區域內容要與普通變數的內容匹配。
21樓:風雲之歌
強制轉換為整形。
int *p = &a;
int addr = (int) p;
c語言中變數指標輸出問題,C語言中變數指標輸出問題
這和printf用 s的規則相關。首先ps是一個指向字元型資料的指標 printf用 s修飾輸出時需要提供一個指標,這個指標指向的資料是字元型的,但printf將按照字串的規則來進行輸出,也就是輸出完這個指標指向的字元後,自動將指標加1,並判斷指向的字元是否為0,否則將輸出直至指向的資料為0為止,或...
關於c子類繼承的this指標的問題
cout d 我想應該是初始化順序吧 首先 cb類 初始化 基類 cd,這時候還並不知道派生類的 b 所以會報錯 初始完基類以後才會初始化自己,這個時候才會有成員 b 首先你要明確一點,this指標屬於某一具體物件,cb cb定義時,this指標屬於cb,可以呼叫cb的資料和函式成員,cd cd定義...
c指標的問題
首先,在指標定義時規定了ip是一個指向整形的指標,但是int ip 3 這句話讓ip指向3號地址塊,但是3號地址塊裡的內容是不確定的,所以是錯誤的 int ip 3 是不是這一步驟有問題?指標初始化不能這樣幹!include void main 這就對了。這時候ip指向a,而原先ip是指向3,而3是...