陣列的定義和使用
格式:資料型別 陣列名[元素個數]
元素個數,代表該陣列有多少個相同資料型別的變數
下標 用來表示陣列中的某乙個元素 例如 int arr[10]; arr[1]代表陣列的第二個元素
陣列下標是從0開始的 到陣列元素個數-1
陣列下標越界:超出了陣列元素個數的下標,如果操作越界資料會出現程式錯誤
陣列元素個數= sizeof(陣列名)/sizeof(陣列元素 | 陣列資料型別)
陣列初始化:
全域性陣列若不初始化,編譯器將其初始化為零
int a[10] = ;//定義乙個陣列,同時初始化所有成員變數
int a[10] = ;//初始化前三個成員,後面所有元素都設定為0
int a[10] = ;//所有的成員都設定為0
inta = ;//定義了乙個陣列,有5個成員
陣列名是乙個位址的常量,代表陣列中首元素的位址
printf("%p\n",陣列名)
printf("%p\n",陣列元素)
陣列元素+1 (sizeof(資料型別))
陣列名+1(sizeof(陣列名))
冒泡法排序
;//定義乙個陣列,同時初始化所有成員變數
int i = 0
;
int j = 0
;
int n = sizeof(a) / sizeof(a[0
]);
inttmp;
//1、流程
//2、試數
for (i = 0; i < n-1; i++)}}
for (i = 0; i < n; i++)
printf("\n
");return0;
}二維陣列:
格式:資料型別 陣列名【行個數】【列個數】
初始化方式:
//分段賦值 int a[3][4] = ,,};
int a[3][4] =, , };
//連續賦值
int a[3][4] = ;
//可以只給部分元素賦初值,未初始化則為0
int a[3][4] = ;
//所有的成員都設定為0
int a[3][4] = ;
//中不定義元素個數,定義時必須初始化
int a[4] = ;
求行數:sizeof(陣列名)/sizeof(陣列名[0]);
求列數:sizeof(陣列名[0])/sizeoef(陣列名[0][0])
printf("%p\n",陣列名);
字元陣列與字串區別
c語言中沒有字串這種資料型別,可以通過char的陣列來替代
數字0(和字元『\0』等價)結尾的char陣列就是乙個字串,但如果char陣列沒有以數字0結尾,那麼就不是乙個字串,只是普通字元陣列,所以字串是一種特殊的char的陣列
#include intmain()
; //
普通字元陣列
printf("
c1 = %s\n
", c1); //
亂碼,因為沒有』\0』結束符
//以『\0』(『\0』就是數字0)結尾的字元陣列是字串
char c2 = ;
printf(
"c2 = %s\n
", c2);
//字串處理以『\0』(數字0)作為結束符,後面的'h', 'l', 'l', 'e', 'o'不會輸出
字串的初始化
#include //c語言沒有字串型別,通過字元陣列模擬
//c語言字串,以字元『\0』, 數字0
intmain()
; printf(
"buf = %s\n
", buf); //
亂碼
//指定長度,後面沒有賦值的元素,自動補0
char buf2[100] = ;
printf(
"buf2 = %s\n
", buf2);
//所有元素賦值為0
char buf3[100] = ;
char buf4[50] = ;
printf(
"buf4 = %s\n
", buf4);
//使用字串初始化,編譯器自動在後面補0,常用
char buf5 = "
agjdslgjlsdjg";
//'\0'後面最好不要連著數字,有可能幾個數字連起來剛好是乙個轉義字元
//'\ddd'八進位制字義字元,'\xdd'十六進製制轉移字元
//\012相當於\n
字串的輸入輸出
#include int字串追加:在乙個字串屁股後面再累加乙個字串main()
#include intmain()
int j = 0
;
while (str2[j] != 0
)
dst[i + j] = 0; //
字串結束符
隨機數
1、新增標頭檔案 time.h stdlib.h
2、新增隨機數種子 srand((unsigend int )time(null));
3、生成隨機數 rand() %
乙個小例子
#include #include隨機數reference:#include
intmain()
隨機數生成 偽隨機數和真隨機數
c語言隨機數的生成,很隨機,又不隨機,比如像下面的程式 c語言生成隨機數的函式在stdlib.h庫中 include includeint main return 0 上面的 經過執行生成了 41 18467 6334 26500但是無論執行多好遍結果都是一樣的,隨機數並不隨機。這是因為rand 函...
隨機數 科普 真隨機數和偽隨機數
位元幣使用者很喜歡討論 非對稱加密 橢圓曲線 量子計算機 這類高深莫測的話題,然後再以一種非常莫名其妙的方式把幣弄丟,比如說 隨機 隨機很重要,對於位元幣這種密碼學電子貨幣來說,尤其重要。可惜社群內對於隨機的討論並不多,導致很多人缺乏正確的認識,因此,我們今天就和大家聊聊隨機。說到隨機,有兩個必須要...
隨機生成6位隨機數
一 使用math.random 函式 int math.random 9 1 100000 說明 1.math.random 隨機生成 0.0,1.0 的double 2.math.random 9 1 100000 的範圍就是 0.0,1.0 9 1 100000 即 100000.0,10000...