1.一維陣列
2.二維陣列
3.有關陣列的運算
char arr[10];
float arr1[2];
double arr2[30];
char arr = "abc";
char arr1[3] = ;
char *p = "abcd"; ///p中存的的是字元a的位址
int main()
; int *p = arr; //p中存的a的位址
int i = 0;
for(i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
printf("\n");
for(i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
system("pause");
return
0;}
int arr[2][4];
char arr1[3][4];
float arr2[2][3];
int arr[3][4] = ; //按順序存放
int arr[3][4] = ; //指定位置
int arr[4] = ;
int main()
; //不完全初始化
int *p = &arr[0][0]; //p中存放陣列首元素位址
int i = 0;
for(i = 0; i < 3*4; i++)
for(i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
printf("\n");
}system("pause");
return
0;}
//一維陣列
int a = ;
printf("%d\n", sizeof(a)); //16 整個陣列的大小
printf("%d\n", sizeof(a+0)); //4 首元素的位址
printf("%d\n", sizeof(*a)); //4 首元素
printf("%d\n", sizeof(a+1)); //4 第二個元素
printf("%d\n", sizeof(&a)); //4 陣列的位址
printf("%d\n", sizeof(*&a)); //16 指向整個陣列
printf("%d\n", sizeof(&a+1)); //4 指向4後面
char arr = ;
printf("%d\n", sizeof(arr)); //6 整個陣列大小
printf("%d\n", sizeof(arr+0)); //4 首元素位址
printf("%d\n", sizeof(*arr)); //1 第乙個元素
printf("%d\n", sizeof(arr[1])); //2 第二個元素
printf("%d\n", sizeof(&arr)); //4 陣列的位址
printf("%d\n", sizeof(&arr+1)); //4 指向f後面
printf("%d\n", strlen(arr)); //x 隨機值,從首元素開始數,遇到'\o'才停下
printf("%d\n", strlen(arr+0)); //x 隨機值,和strlen(arr)一樣
printf("%d\n", strlen(*arr)); //error 指向元素a,把元素a當做乙個位址
printf("%d\n", strlen(&arr)); //x 隨機值,相當於從首元素開始數
printf("%d\n", strlen(&arr+1)); //x 隨機值,從f後面開始數
printf("%d\n", strlen(&arr[0]+1)); //x 隨機值,從第二個元素開始往後數
char arr = "abcdef";
printf("%d\n", sizeof(arr)); //7 陣列大小中含有'\0'
printf("%d\n", sizeof(arr+0)); //4 首元素位址
printf("%d\n", sizeof(*arr)); //1 首元素
printf("%d\n", sizeof(&arr)); //4 陣列位址
printf("%d\n", sizeof(&arr+1)); //4 指向f後面
printf("%d\n", sizeof(&arr[0]+1)); //4 第二個元素位址
printf("%d\n", strlen(arr)); //6 從首元素開始數,遇到'\0'停下
printf("%d\n", strlen(arr+0)); //6 同strlen(arr)一樣
printf("%d\n", strlen(*arr)); //error 指向第乙個元素
printf("%d\n", strlen(&arr)); //6 陣列的位址和首元素位址相同
printf("%d\n", strlen(&arr+1)); //x 從f後面開始數
printf("%d\n", strlen(&arr[0]+1)); //5 第二個元素
char *p = "abcdef";
printf("%d\n", sizeof(p)); //4 首元素位址
printf("%d\n", sizeof(p+1)); //4 第二個元素位址
printf("%d\n", sizeof(*p)); //1 第乙個元素
printf("%d\n", sizeof(p[0])); //1 第乙個元素,等同於*(p+0)
printf("%d\n", sizeof(&p)); //4 指標型變數本身的位址
printf("%d\n", sizeof(&p+1)); //4 指標型變數下一連續空間位址
printf("%d\n", sizeof(&p[0]+1)); //4 第二個元素位址
printf("%d\n", strlen(p)); //6 從首元素開始數
printf("%d\n", strlen(p+1)); //5 從第二個元素開始
printf("%d\n", strlen(*p)); //error 指向首元素
printf("%d\n", strlen(p[0])); //error 同strlen(*p)
printf("%d\n", strlen(&p)); //x 隨機值
printf("%d\n", strlen(&p+1)); //x
printf("%d\n", strlen(&p[0]+1)); //5 第二個元素開始
int a[3][4] = ;
printf("%d\n", sizeof(a)); //48 陣列的大小
printf("%d\n", sizeof(a[0][0])); //4 首元素
printf("%d\n", sizeof(a[0])); //16 第一行元素陣列名,第一行陣列大小
printf("%d\n", sizeof(a[0]+1)); //4 第一行第二個元素
printf("%d\n", sizeof(a+1)); //4 第二行位址
printf("%d\n", sizeof(&a[0]+1)); //4 第二行位址
printf("%d\n", sizeof(*a)); //16 第一行元素
printf("%d\n", sizeof(a[3])); //16 第四行
C語言一維陣列概述
陣列的定義 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可以分為數值陣列 字元陣列 指...
C 陣列概述
int narr 4 當陣列為全域性變數時,未初始化值預設為0 當陣列為區域性變數時,則其值在debug下為0xccccccc,release下為隨機值int narr1 4 int narr2 4 第4值預設為0 int narr3 編譯器在編譯階段推斷陣列維數為4 int narr4 4 陣列最...
C 陣列概述
陣列具有以下屬性 1.陣列可以是一維 多維或交錯的。2.陣列元素的預設值設定為零,而引用元素的預設值設定為null。3.交錯陣列是陣列的陣列,因此,它的元素是引用型別,初始化為null。4.陣列的索引從零開始 具有n個元素的陣列的索引是從0到n 1。5.陣列元素可以是任何型別,包括陣列型別。6.陣列...