C語言陣列概述

2021-08-21 02:23:30 字數 4181 閱讀 2578

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.陣列...