天天看點

C語言基礎:數組和字元串

數組:數組的定義注意點

數組初始化正确寫法:

int args[5] = {1,23,32,4,5};

int args[5] = {12,23};

int args[5] = {[3]=23, [4]=13};//這種寫法也可以,直接給其中角标為3和4的指派

int args[] = {12,23,32};//中括号中沒寫數組大小,在大括号中一定要寫具體數值

int args[‘A’] = {2,34,5};

錯誤寫法:

int args[];//這樣編譯器不知道給你開辟多大的記憶體空間

int count = 5;

int args[count] = {12,23,4};//不能寫變量在定義數組時;

數組名就是數組的位址:

int args[3] = {23,3,4};

printf(“%p\n”,args);//列印數組的位址,和第一個元素的位址一樣

printf(“%p\n”,&args[0]);//列印數組中某個值得位址要加  &

由于數組名是位址,當把數組名參數傳給函數,傳遞的是數組的位址;

字元串:c語言中字元串是用字元數組存儲的,結束符:’\0’,這個結束标記很重要,用他作為一個字元串結束的标志;

對于沒有\0結束符的隻能說是字元數組

數組定義正确的:

char name[8] = “itcast”;

char name2[8] = {‘i’ , ’t’ ,  ‘\0’};//這樣定義必須要用\0結束,

char name3[8] = {‘i’ , ’t’ ,  0};//由于0的ASCII碼值就是0,這樣也是可以的;

char name4[8] = {‘i’ , ’t’ };//這個雖然沒有\0作為結束,但是定義的大小是8個,而隻用了兩個,後邊的會預設補上0的

但是下面這個就隻能叫字元數組了:

char name[] = {‘i’ , ’t’ };沒有定義字元數組的大小,預設按照給定的字元個數作為數組的大小,是以這個數組隻有2個字元

字元串輸出的占位符:%s,右邊接收的變量是一個位址,或者叫數組名

c語言自帶的計算字元串的長度的函數:strlen,這個函數包含在<stdio.h>頭檔案中;

注意點:這個字元串計算長度不計\0,而是以\0作為結束符;