陣列小總結

2021-08-18 06:16:20 字數 1416 閱讀 7140

一、一維陣列

1、一維陣列的建立和初始化

型別數名符 陣列名[常量表示式]

int arr1[10];注:中要給乙個常量才可以,不能使用變數。

int arr2[10]=;其他元素自動附0值

int arr3=;可以不指定陣列長度

char arr4=;

char arr5="abcdef";

2、一維陣列的使用

陣列是使用下標來訪問的,下標從0開始。

陣列的大小計算:int sz=sizeof(arr)/sizeof(arr[0]);

3、陣列在記憶體中是連續存放的

4、一維陣列的指標訪問

1)&陣列名表示整個陣列 ,sizeof(陣列名)表示整個陣列

其餘都是首元素的位址

arr+i表示下標為i的位址,*arr+i表示下標為i的元素,*(arr+0)表示微首元素

*arr、*(arr+0)、arr[0]表示首元素

二 、二維陣列

1、二維陣列的建立和初始化

型別說明符 陣列名[常量表示式1][常量表示式2]

float arr[3][3];

二維陣列第一維可以省略,二維不可以省略

int a[ ][3]=;

2、二維陣列在記憶體中也是連續訪問的

3、二維陣列可以看成乙個特殊的一維陣列    

a[i][j]可以表示為*(a[i]+j)

三 、     陣列作為函式引數的時候,不會把整個陣列傳遞過去,只是把陣列的首元素傳遞過去  

strlen() 求的是字串的實際長度(從開始到遇到第乙個\0結束)

sizeof()返回的是變數名所佔的記憶體

sizeof是乙個操作符

strlen是函式

char *p = "abcdef";

printf("%d\n", strlen(p));//6

printf("%d\n", strlen(p+1));//5

printf("%d\n", strlen(*p));//err

printf("%d\n", strlen(p[0]));//err

printf("%d\n", strlen(&p));//隨機

printf("%d\n", strlen(&p+1));//隨機值

printf("%d\n", strlen(&p[0]+1));//5

printf("%d\n", sizeof(p));//4

printf("%d\n", sizeof(p+1));//4

printf("%d\n", sizeof(p[0]));//1

printf("%d\n", sizeof(&p));//4

printf("%d\n", sizeof(&p+1));//4

printf("%d\n", sizeof(&p[0]+1));//4

陣列小總結

1 一維陣列的定義 a 10 陣列名 陣列元素個數 陣列的初始化 可以鍵盤scanf輸入初始化 也可以直接定義陣列元素 2一維陣列的總結 陣列元素不能整體使用,只能使用其中各個元素。訪問一維陣列通常是使用迴圈結構 3二維陣列的定義和初始化 a 3 4 三行四列 二維陣列的賦值 int a 3 4 i...

樹狀陣列小總結

關於樹狀陣列的兩種初始化方法 方法一 初始化bit bitbi t陣列為0 00,然後對於陣列a aa的每乙個元素進行add addad d操作,時間複雜度o n logn o nlogn o nlog n 方法二 預處理a aa陣列的字首和pre prepr e陣列,bit ind ex pre ...

陣列模擬小總結 一

二 陣列對映 例題2 買奶茶 例題三 花瓣數 一道不應景的字首和小題 我們要儲存m條通路及其費用,且無向,對於給出的 k 條通路 include include include include using namespace std const int n 310 int n,m,k int g n...