-
然而,很明顯這是有問題的,因為變數 a 根本沒有賦值。
第三:符號和加法的關鍵取決於你想輸出什麼,以及變數a是什麼,這兩者決定。
這個過程有點複雜。
首先,我將肯定我的勞動成果,然後我會詳細談論它。
-
第乙個:printf("%p",a)
這是輸出 a 的值。
printf("%p",&a)
這是主輸出儲存 a 值的位址。
要輸出指標變數 b 的位址,只需 printf(“%p”,&b);
請記住,有乙個 & 符號,表示位址。
-
第乙個,int a; 未賦值整數變數 a,因此 a 的值是亂碼,&a 是 a 變數的記憶體位址。
第二個,int*b; b 是乙個整數指標,在 b=&a 之後,b 的值是 a 變數的記憶體位址,如果輸出 b 的位址,則為 &b
第三,需要哪些符號來與你的需求相關,例如,如果你想列印出 a 的值,那麼它是 a,如果你想檢視 a 的記憶體位址,那麼你會 &a
-
printf("%p",a);和 printf("%p",&a);區別在於前者輸出a的位址,後者輸出引數的位址,a的位址儲存在引數中。
第二個填充 b 是 a 變數的位址,要輸出指標變數 b 的位址並填寫 &b
第三個&取位址,在輸出變數時使用,但在輸出指標時不使用。
-
可以理解為記憶中是一家大酒店,裡面的房間有門牌號,也就是位址的值,房間就是乙個空間(空間有多大? 例如,int 可以用 sizeof(int)) 計算。
此位址是有價值的,用十六進製的 &x(十六進製)表示。 或 %p 列印位址。
陣列的(第乙個)位址是陣列的名稱,例如 int s[10],其中 s 是位址。
指標,p 是指標本身,*p 是儲存在空間中的位址(在房間中,p 有自己的房間號,*p 是儲存在 p 房間的房間號)。
但是當你真正使用它時,你一般不會使用位址來做操作,而是使用位址中的資料。 gets(s) 也是將資料輸入到此位址的連續空間中。
-
CPU 暫存器和記憶體會將起始位址定義為零,然後使用偏移量查詢相應的位址。 對於 x86,位址是占用 4 個位元組的無符號整數; x64 是乙個位址為 8 位元組的無符號 int
-
是乙個特定的數字。
在記憶體空間中,這些資料都儲存在記憶體空間中,如何找到它,就是通過位址來找到它。
二進位位是最基本的單位,稱為位元組
計算機將其中的 8 個位組成位元組。
每個位元組都編號,這是位址,通過這個位址,你可以像社群一樣找到你想要的資料,想找乙個所有者,通過幾棟樓、幾個單元、幾層樓去找,呵呵,兩個位址可以做減法運算(表示兩個位址之間分隔了多少個位元組),或者乙個位址減去乙個常量。
-
這是乙個有趣的問題:)
位址就是乙個位址,只是一串數字。
如果要輸出相應的內容,那麼需要了解兩件事:
a,你需要知道你需要多少位元組的記憶體來儲存這個內容,換句話說,你需要知道你需要解釋多少。
可以使用多少位元組的記憶體空間來輸出儲存的內容;
b,你需要知道的第二件事是如何解釋這個記憶體長度,無論是用無符號整數還是單精度浮點數來解釋。
在 C C++ 中,告訴您這兩件事的概念是儲存在位址中的資料型別。
因此,假設您手頭只有乙個 ul 型別的位址,並且您希望將該位址的四個位元組解釋為 none。
符號整數,那麼你必須寫這樣的東西: *unsigned int *)0xabcdef12 ;否則,它將被解釋為單子植物。
0xabcdef12以位元組開頭(請注意,它不是四個位元組,而是乙個位元組)被解釋為無符號
char,這是它的工作原理:*unsigned char *)0xabcdef12。
因此,您解釋哪種型別的長位元組以及可以取出什麼樣的內容取決於您。 :
-
只要位址不為空,就可以輸出。
範圍。 你靜態字元 *chh;
static char *ch1;雖然兩個指標指向的位址沒有變化,但你有沒有想過它們指向的記憶體位址是否已經釋放,char chc[10]; 它是本地的,函式已經結束,生命週期已經結束,你正在嘗試使用 void times() 中的指標訪問它。 >>>More
我不明白你在說什麼,但你可能剛剛學會了網上購物。 看看你說的,你應該通過支付寶把錢寄給賣家,賣家在你發貨的時候選擇了“發貨人付郵資”,所以快遞員沒有從你那裡收貨。 >>>More