一維陣列a[5]中&a和a區別
#include "stdio.h"
int main()
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
return 0;
}
答案:2,5
區別:a代表陣列a[5]的首地址,&a代表陣列整體的地址,雖然他們的地址數是一樣的,但是含義不一樣的。
注意 a 是表示陣列a[5] 的。
*(a + 1) 和 *(&a + 1)區別見見下圖。*(a + 1) 這個好理解,但*(&a + 1)理解起來彆扭,把&a看成表示陣列整體的長度,加一表示陣列整體長度後移(見圖紅色的方框,到了a[5]位置,其實陣列只有到a[4],所以相當與陣列整體後移了)。
相關文章
- JS陣列中(for...in)和(for...of)的區別JS陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 陣列中&a與&a[0]的區別陣列
- 物件陣列與一般陣列的區別物件陣列
- golang切片和陣列的區別Golang陣列
- javascript陣列和物件的區別JavaScript陣列物件
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- PHP二維陣列轉一維陣列PHP陣列
- 一維陣列陣列
- JavaScript --二維陣列查詢一維陣列JavaScript陣列
- 一維多維陣列陣列
- 【淺出 PHP】陣列相加和陣列合並的區別PHP陣列
- while迴圈和do迴圈、緩衝區、一維陣列While陣列
- 陣列和連結串列的區別陣列
- JavaScript二維陣列轉換成一維陣列JavaScript陣列
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- 二維陣列和稀疏陣列互轉陣列
- 多維陣列轉一維陣列(降維的多種方式)陣列
- 面試-陣列和連結串列的區別面試陣列
- C語言:陣列和指標的區別C語言陣列指標
- javascript中一維和二維陣列初始化JavaScript陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 陣列004 動態建立一維陣列陣列
- PHP一維陣列轉二維陣列正規表示式PHP陣列
- Java 二維陣列轉一維Java陣列
- php 一維陣列變多維PHP陣列
- C語言中陣列首地址和陣列第一個元素的地址有什麼區別C語言陣列
- C: (pointer) 陣列變數和指標的區別陣列變數指標
- 引數為*&與*的區別以及二維陣列傳遞時列數不對等的區別陣列
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 求二維陣列中最大子陣列的和陣列
- javascript中集合、陣列和物件的區別和關係JavaScript陣列物件
- 詳解資料結構中的“陣列”與程式語言中的“陣列”的區別和聯絡資料結構陣列
- 二維陣列和指標陣列指標
- C++ 指標陣列與陣列指標的區別C++指標陣列
- 簡單介紹Lua一維陣列與多維陣列的使用陣列
- 一維子陣列最大和陣列