陣列位址加一詳解

2021-10-18 21:18:15 字數 534 閱讀 1240

int a[5]=;

//int *a=new int[5];

int *ptr=(int*)(&a+1); //&a+1相當於加了陣列的乙個單位(也就是一行),即&a[5]

printf("%d", *(p-1)) //指標p-1相當於前移乙個元素,輸出為5

a是陣列首位址a[0]的位址,&a是物件(陣列)首位址;

a+1,表示指標指向下乙個元素a[1],這是因為系統在記憶體中為陣列分配乙個連續大小為20位元組的大小,並把首位址賦值給陣列名a,那麼&a+1就是表示這個記憶體的下乙個位址。

(int)a表示的把陣列位址即記憶體單元的編號轉換成整數,那麼此時的(int)a+1加一相當於加乙個整數

int (*p)[3];//一定要加上括號,因為的優先順序高於*

p=a;//相當於p&a[0],也就是指向第乙個陣列a[0]的首位址

coutcout《參考:

1.2.

嘎 陣列 加一

題目 給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4...

IP位址後面斜槓加具體數字詳解

其實這種形式就是用cidr 無類別域間路由選擇,classless and subnet address extensions and supernetting 的形式表示的乙個網段,或者說子網。我們知道確定乙個子網需要知道主機位址和子網掩碼,但用cidr的形式,可以簡單得到兩個數值。舉例說吧,19...

隨筆 陣列加一(整型陣列)

題目 給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存乙個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4...