1樓:白波九道雪
陣列bai名和指標都可以標誌地址,du但是要zhi注意:
陣列名是常量,一旦dao你定義了一個數內組,那麼數容組名無法被賦值。
指標是變數,是可以被賦值的!
例如:int a[10];
int b[10];
a=b;//錯誤!!!不能對a賦值
注意下面
int *p;//定義一個指標
p=a;//ok,p現在指向a的首地址。
p=b;//ok,p現在指向b的首地址。
一句話:陣列名是常量,指標是變數!
2樓:匿名使用者
陣列名不是指標,是地址常量,所以賦值報錯。
那顯示a的時候為什麼不是十六進位制的地址呢?
要加取址符啊。這裡a的意思相當於地址的代號,如同一個人。有名字和綽號。地址是名字 a相當於綽號
3樓:灬螺旋丸
陣列名都是指標,但是都是一個常指標。本身是不可改變的。
c++中陣列名到底是不是一個地址?
4樓:尋秦記記
a+1表示字串中第1個字元(從0計數)開始,它代表一個地址沒錯,但是c++中字串對
《的過載功能,表示從當前地址直到字串結束到輸出到標準輸出,即列印埠,所以當char a = "asdf"時,cout << a+1就會列印sdf
5樓:匿名使用者
char陣列比較特殊, 你用int陣列來看看
字串會連續輸出, 直到遇見'\0'
int陣列就符合正常思維
c++ 指標與陣列名的區別,求助高手
6樓:偷心的賊
首先,第一行肯定是輸出亂碼,解釋2個知識點你就知道了:
1.陣列和指標的區別,其實對於你的問題這不是最重要的,不過既然你問道區別就說說吧:
陣列名確實表示指向陣列首地址的指標,但這個指標很特別,它的值(指標的值指的是指標所指的地址)不能被改寫,能改寫的僅僅是其指向的內容,換句話說,陣列名只能指向陣列的首地址,如果有陣列char a;那麼如果出現a = a+1;這是編譯都通不過的錯誤。而對於一個普通的指標是可以的,再比如有陣列char a;那麼再定義一個char *p = a;然後再用p = p+1是合法的,這表示讓指標p指向&a[1]。
它們的第二個區別是:每當用到陣列名這個指標的時候,系統都會傳入陣列的資訊,而普通的指標只是一個4位元組的整數,例如:
char a[5];
char *p = a;//指標a和指標p都指向陣列a的首地址
cout << sizeof (a) << "##" << sizeof (p) << endl;
這時的執行結果是「5##4」
2.作用域以及生存期:
被一組「{}」括起來的部分被稱為一個「域」,在某個域中定義的變數稱為區域性變數,這個區域性變數僅僅在該作用域下有效,一旦離開這個作用域,該變數就消亡;如果遇見多重作用域,外層的變數可在內層起作用,如果遇見內層與外層同名的情況,則內層的同名變數在內層覆蓋外層變數。
舉個例子:
void fun1()
void fun2()
void fun3 ()
//新增加的作用域結束
cout << c << endl;//這裡依然會列印出1,因為這裡的c是第一個定義的c,上面新增的作用域的c已經在其作用域結束的時候消亡。
}好了,上面的基礎知識說完了,現在我們來分析你的程式,第一行出現亂碼是因為在函式getmemory()結束的時候,陣列消亡了,每個元素都消亡了,所以在你列印的時候,系統找不到p1指向的值,因為已經消亡,p1成了野指標,所以出現亂碼,而第二行正常是因為:雖然指標b也在函式中消亡,不過消亡的僅僅只是一個指標,其指向的內容並沒有消亡,而這些內容的首地址已經在getmemory()中賦給了你傳入的指標,所以第二行正確
7樓:匿名使用者
a 你首先要思考下 p1 在getmemory(&p1 , &p2 );之後裡面裝的是什麼? 這裡因該裝的是地址而不是一個變數,你如果要想輸出這個地址裡的值那就加上『* 』號。但輸出的只是首地址的值,至於為什麼3樓的第一點已經說的很詳細了
你可以結合下面的程式分析下
#include
using namespace std;
int main()
8樓:匿名使用者
c大概輸出亂碼
char a = "hello";
定義的陣列a[6]在函式返回後,不存在了,cout< 暹羅siam 此外,暹羅 還有助於在外物影響下增加評價的客觀性,通過明確定義的規則的定義和應用,基於技術上接地的準則分級用於影響 階段所取得的成果,暹羅 可應用於任何被建議專案中與空間分佈的影響有關的環境影響評估 這是幾乎所有專案的環境影響的情況下 本文中所描述的總體框架,可以適應每個特定的情況下,... 那個龍鳳牌 玉種因為是 看著像 產自河南的南陽玉器 成色一般 水頭差 如果是收藏 就沒有必要了 要是自己佩戴 還可以 估計賣價在350左右吧 後面那個吊墜 成色不錯 要是幾十塊錢的話 也可以佩戴不錯 裡面不是有 麼 你還想 買來60賣100麼 請高手幫我看下我的玉是否a貨,值多少錢?我看這款如意是冰... 1952年 過程 設1988年姐姐年齡為a 弟弟年齡為b 爸爸年齡為c則 a b 6 c a 8 b 8 2 c 8第2個式子化為 a b 2 32 c 8 a b 2 c 24 3 a b 2 3c 72於是3c 72 c得2c 72 c 36 1988 36 1952 假設爸爸是19x年出生,姐...求助英譯中,高手進啊
還是關於玉石。請高手中的高手進,幫我看看這個值多少錢是不是A貨
小學奧數題。高手進