C語言陣列的相關運算

2021-08-18 19:20:52 字數 2285 閱讀 3651

關於陣列的運算,需要注意以下幾點:

1. sizeof(陣列名):陣列名表示整個陣列

sizeof(陣列名)計算的是整個陣列的大小,單位是位元組

2. &陣列名:陣列名表示整個陣列

&陣列名取的是陣列的位址,這裡的陣列名表示整個陣列

3. 除此之外,所有的陣列名表示首元素位址

4. 二維陣列要看首元素的位址,首先要把二維陣列想成一維陣列

5. 位址是四個位元組

6. strlen的運算遇到'\0'才會結束

一維陣列

int a = ;

printf("%d\n", sizeof(a)); //16 注:a表示整個陣列

printf("%d\n", sizeof(*&a)); //16 注:*&a表示整個陣列

字元陣列

char arr = ;

printf("%d\n", sizeof(arr)); //6 注:arr表示整個陣列

printf("%d\n", sizeof(*arr)); //1 注:*arr表示首元素,即a

printf("%d\n", sizeof(arr[1])); //1 注:arr[1]表示第二個元素,即b

printf("%d\n", sizeof(*&arr)); //6 注:*&arr表示整個陣列

//strlen遇到'\0'才會結束

printf("%d\n", strlen(*arr)); //error 注:*arr表示a元素,即數字97

printf("%d\n", strlen(arr[1])); //error 注:arr[1]表示b元素,即數字98

printf("%d\n", strlen(&arr+1)); //隨機數 注:&arr+1表示從元素'f'向後數字符

printf("%d\n", strlen(&arr[0]+1)); //隨機數 注:&arr[0]+1表示從元素'b'向後數字符

char arr = "abcdef"; //包含'\0'

printf("%d\n", sizeof(arr)); //7 注:arr表示整個陣列,整個陣列有7個元素

printf("%d\n", sizeof(*arr)); //1 注:*arr表示首元素,即'a'

printf("%d\n", sizeof(arr[1])); //1 注:arr[1]表示第二個元素,即'b'

printf("%d\n", strlen(*arr)); //error 注:*arr表示'a'元素,即數字97

printf("%d\n", strlen(arr[1])); //error 注:arr[1]表示'b'元素,即數字98

printf("%d\n", strlen(&arr+1)); //隨機值 注:&arr+1表示跳過整個陣列,從元素'\0'向後數字符

printf("%d\n", strlen(&arr[0]+1)); //5 注:&arr[0]+1表示從元素'b'向後數字符,到'\0'結束

char *p = "abcdef"; //p裡面存的是字元a的位址

printf("%d\n", sizeof(p)); //4 注:p是指標變數

printf("%d\n", sizeof(*p)); //1 注:*p表示首元素,即元素'a'

printf("%d\n", sizeof(p[0])); //1 注:p[0]相當於*[p+0],表示首元素,即元素'a'

printf("%d\n", strlen(*p)); //error 注:*p表示首元素

printf("%d\n", strlen(p[0])); //error 注:p[0]表示首元素

二維陣列

int a[3][4] = ;

printf("%d\n", sizeof(a)); //48 注:a表示整個陣列

printf("%d\n", sizeof(a[0][0])); //4 注:a[0][0]表示第一行第乙個元素

printf("%d\n", sizeof(a[0])); //16 注:a[0]表示第一行

printf("%d\n", sizeof(*a)); //16 注:*a表示第一行

printf("%d\n", sizeof(a[3])); //16 注:a[3]相當於a[1],sizeof內部表示式不參與運算

C語言陣列運算

陣列運算例子 判斷素數 構造素數表 欲構造n以內的素數表 1.令x為2 2.將2x,3x,4x直至ax構造素數表 欲構造n以內 不含n 的素數表 1.開闢prime n 初始化其所有元素為1,prime x 為1表示x為素數 2.令x 2 3.如果x是素數,則對於 i 2 x iint main i...

陣列相關運算

陣列的初始化 陣列及指標在記憶體中的儲存 一維陣列在記憶體中的儲存 有關陣列的運算 一維陣列 int a printf d n sizeof a 16這裡的a表示的是整個陣列,計算出的是整個陣列的大小,單位為byte printf d n sizeof a 0 a沒有單獨放在sizeof括號後面,此...

C語言 位運算相關總結

1.位運算符號 取反,不分正負數 標準規定在右邊補0 正數則左邊補0,負數標準沒有規定在左邊補充的數字,分為邏輯右移和算術右移,具體由編譯器決定,windows平台和gcc採取算術右移即負數補1 2.常見的二進位制位的變換操作 去掉最後一位 101101 10110 x 1 在最後加乙個0 1011...