一、一維陣列
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...