有關陣列的計算(你會了嗎)

2021-08-18 04:20:53 字數 3654 閱讀 9705

####關於陣列,我們必須學會下面的計算

//1.陣列名單獨放在sizeof()內部,陣列名表示整個陣列

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

//2.&陣列名,陣列名表示整個陣列

所以&陣列名取出的是整個陣列的位址

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

陣列名+i相當於下標為i的位址

######一維陣列

整型   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[1]));//4
printf("%d\n",sizeof(&a));//4
//printf("%d\n",sizeof(*&a));//16
printf("%d\n",sizeof(&a+1));//4
printf("%d\n",sizeof(&a[0]));//4
printf("%d\n",sizeof(&a[0]+1));
字元  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]));//1
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr+1));
printf("%d\n", sizeof(&arr[0]+1));
注意    strlen   

printf("%d\n", strlen(arr));//隨機值

printf("%d\n", strlen(arr+0));//隨機值
printf("%d\n", strlen(*arr));//error
printf("%d\n", strlen(arr[1]));//error
printf("%d\n", strlen(&arr));//隨機值
printf("%d\n", strlen(&arr+1));//隨機值
printf("%d\n", strlen(&arr[0]+1));//隨機值
char arr="abcdef";//字串初始化
printf("%d\n", sizeof(arr));//7
printf("%d\n", sizeof(arr+0));//4
printf("%d\n", sizeof(*arr));//1
printf("%d\n", sizeof(arr[1]));//1
printf("%d\n", sizeof(&arr));//4
printf("%d\n", sizeof(&arr+1));//4
printf("%d\n", sizeof(&arr[0]+1));//4
printf("%d\n", strlen(arr));//6
printf("%d\n", strlen(arr+0));//6
printf("%d\n", strlen(*arr));//error
printf("%d\n", strlen(arr[1]));//error
printf("%d\n", strlen(&arr));//6
printf("%d\n", strlen(&arr+1));//隨機值
printf("%d\n", strlen(&arr[0]+1));//5
char*   p = "abcdef";//p是指標變數,字元指標
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
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));//err
printf("%d\n", strlen(p[0]));//err
printf("%d\n", strlen(&p));//隨機值
p 是指標變數,&p是從p的位址往後數,不確定數到**,所以是隨機值。

printf("%d\n", strlen(&p+1));//隨機值
printf("%d\n", strlen(&p[0]+1));//5
######二維陣列

sizeof ( arr[ 0 ] ) 為第一行的位址

sizeof ( arr[ 0 ]+1 ); arr [ 0 ] 降級為第一行第乙個元素的位址,所以該表示式表示第一行第二個元素的位址

二維陣列的首元素為第一行;表示式sizeof ( arr +1)中,arr 降級為首元素位址,即第一行位址;加1則表示跳過第一行,即為第二行。

中心頻點計算公式 5G頻點計算你會了嗎?

在學習計算方法之前,我們需要學習幾個基礎概念,這幾個基礎概念的掌握,有助於理解5g nr網路的基本原理,幫助我們了解5g與4g的不同,是一定要知曉的概念,它們分別是 global rasterchannel rastersynchronization raster gscn 接下來逐一解釋 glob...

最高效的oracle分頁語句,你會了嗎?

1 無order by排序的寫法。效率最高 經過測試,此方法成本最低,只巢狀一層,速度最快!即使查詢的資料量再大,也幾乎不受影響,速度依然!select from select rownum as rowno,t from emp t where hire date between to date ...

CSS3的應用,你學會了嗎?

開場白css3相對於css2引入了很多的新的css屬性和特效,利用css3實現了原來需要加入js才能模擬的效果,因此前端效能提高了很多。各大瀏覽器廠商包括ie都逐漸的加大對css3 html5的支援,移動web前端的火熱形式也對html5 css3起到了極大的推動作用。一 快捷的css3樣式選擇方式...