sizeof 和strlen的區別
1.sizeof 和strlen沒有關系
2.strlen是求字串長度–只能針對字串求長度-庫函式,需要頭檔案
3.sizeof 計算陣列,變數,型別的大小–單位是位元組-運算子
# include<stdio.h>
# include<string.h>
int main() {
char arr1[] = "abc";
char arr2[] = { 'a','b','c'};
printf("%d\n", sizeof(arr1));
printf("%d\n", sizeof(arr2));
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
}
結果 :4 3 3 亂數
順序輸出字串的元素
# include<stdio.h>
# include<string.h>
int main() {
char arr[] = "abcdef";
int i;
for (i = 0; i <= (int)strlen(arr); i++) {
printf("%c\n", arr[i]);
}
}
輸出地址
# include<stdio.h>
# include<string.h>
int main() {
char arr[] = { 1,2,3,4,5,6,7,8,9 };
int se = sizeof(arr) / sizeof(arr[0]);
int i;
for (i = 0; i <= se; i++) {
printf("&arr[%d]=%p\n", i, &arr[i]);
}
}
輸出二維陣列元素
# include<stdio.h>
# include<string.h>
int main() {
int arr[3][3] = { {1,2,3} ,{1,2,3},{1,1,1} };//幾行幾列
//只能省略行,不能省略列
int i = 0,j;
for (i = 0; i <= 2; i++) {
j = 0;
for (j = 0; j <= 2; j++) {
printf("%d\t", arr[i][j]);
}
printf("\n");
}
}
冒泡排序
# include<stdio.h>
# include<string.h>
void bubble_sort(int arr[],int sz) {
//確定冒泡的趟數
int i = 0;
for (i = 0; i < sz - 1; i++) {
//每一趟冒泡排序
int flag = 1;//假設要拍的資料已經有序
int j = 0;
for (j = 0; j < sz - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = 0;//這趟不完全有序
}
}
if (flag == 1) {
break;
}
}
}
int main() {
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
//對陣列排序,升序
int i;
int sz = sizeof(arr) / sizeof(arr[1]);
bubble_sort(arr, sz);//冒泡排序函式
for (i = 0; i <sz; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
陣列地址

# include<stdio.h>
# include<string.h>
int main() {
int arr[] = { 1,2,3,4,5,6,7,8,9 };
printf("%p\n", arr);//首元素的地址
printf("%p\n", arr+1);第二個元素的地址
printf("%p\n", &arr[0]);//第一個元素的地址
printf("%p\n", &arr[0]+1);第二個元素的地址
printf("%p\n", &arr);//陣列的地址
printf("%p\n", &arr+1);//這個是加一個陣列的長度
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287707.html
標籤:其他
