字串和陣列的解析
1)定義:由數字、字母、下劃線組成的一串字元,程式語言中表示文字的資料型別。通常以串的整體作為操作物件。
2)定義字串的方式:
a.通過字元陣列來定義字串"HelloWorld",陣列中每個儲存單元存放一個字元
char str1[] = "HelloWorld";
b.通過字元指標來定義字串"HelloWorld",指標str2指向一個存放字串"HelloWorld"的連續地址單元的首地址
char *str2 = "HelloWorld";
c.通過巨集定義來定義字串"HelloWorld",等價於str3="HelloWorld"
#define str3 "HelloWorld";
3)字串常用函式
a.函式名:strcpy
功能:串拷貝,函式返回一個字串
用法:char* strcpy(char* str1,char* str2);
b.函式名:strcat
功能:字串拼接函式,函式返回一個字串
用法:char* strcat(char* destin,char* source);
c.函式名:strchr
功能:在一個串中查詢給定字元的第一個匹配之處,函式返回一個字串
用法:char* strchr(char* str,char c);
d.函式名:strcmp
功能:串比較,函式返回一個整型數值
用法:int strcmp(char* str1,char* str2);
2、陣列
1)定義:相同元素按一定順序排列的集合。
2)陣列的特殊定義:
int arr[5];
int *p;
p=arr;
a.arr的值是該陣列記憶體的首地址,其指向陣列的第一個元素;但&arr是指整個陣列的記憶體塊,故arr和&arr的值是一樣的,都是該陣列的首地址,但他們的含義不一樣,及sizeof(arr)不等於sizeof(&arr)
b.p=arr把陣列的首地址賦給p,即p現在就是指向陣列的首地址,通過p就可以訪問整個陣列,但是p這裡只是是個指標變數,也就是p的本質沒有改變,p不能和arr一樣代表整個陣列的記憶體
c.arr+1就相當於陣列自加一樣。
3、字串和陣列聯絡
1)二者都是一段連續的記憶體,共性較多;
2)字元在記憶體中是以ascll碼儲存的,以%d格式輸出一個字元就是輸出它的ascll碼。