一維陣列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陣列
- 物件陣列與一般陣列的區別物件陣列
- golang切片和陣列的區別Golang陣列
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 【淺出 PHP】陣列相加和陣列合並的區別PHP陣列
- 一維陣列陣列
- while迴圈和do迴圈、緩衝區、一維陣列While陣列
- 一維多維陣列陣列
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- 二維陣列和稀疏陣列互轉陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 多維陣列轉一維陣列(降維的多種方式)陣列
- 陣列004 動態建立一維陣列陣列
- C語言中陣列首地址和陣列第一個元素的地址有什麼區別C語言陣列
- 面試-陣列和連結串列的區別面試陣列
- 引數為*&與*的區別以及二維陣列傳遞時列數不對等的區別陣列
- Java 二維陣列轉一維Java陣列
- 求二維陣列中最大子陣列的和陣列
- 詳解資料結構中的“陣列”與程式語言中的“陣列”的區別和聯絡資料結構陣列
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- Python陣列和列表的區別?Python學習教程Python陣列
- array_merge和+號合併陣列的區別陣列
- Java break、continue 詳解與陣列深入解析:單維陣列和多維陣列詳細教程Java陣列
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- 簡單介紹Lua一維陣列與多維陣列的使用陣列
- 找一個陣列中特別的數陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- PHP中二維陣列與多維陣列PHP陣列
- apply的理解和陣列降維APP陣列
- 第四章:多維陣列和矩陣 ------------- 4.7 子陣列最大累加和陣列矩陣
- 二維陣列中的查詢陣列
- C# 一維陣列如何快速實現陣列元素的資料型別的轉換?C#陣列資料型別
- C#中如何獲取二維陣列的行數和列數?C#陣列
- C#陣列與集合的區別C#陣列
- 6-Java基礎語法-陣列之一維陣列Java陣列
- 資料結構之陣列和矩陣--矩陣&不規則二維陣列資料結構陣列矩陣