1、字串
用「」引起來的內容,就是字串。
在c語言中有沒有專門的字串的變數? 沒有
所以我們使用字元陣列來儲存字串。(把字串的每乙個字元儲存到字元陣列的每乙個元素中,並且會多存放乙個『\0』)
'\0' 字串的結束標記,ascii碼表中值是 0 對應的字元。nut,null
2、字元陣列
1)定義
char 數祖名[長度];
char str[200]; 表示定義乙個長度為200的字元陣列,如果用來儲存字串,則字串的最大長度是199,留出乙個給'\0'
char str[3]=; //不能以%s進行輸出
2)初始化
(1)完全初始化
char str[3]=;
(2)部分初始化
char str[3]=;
(3)用字串進行初始化
char str[10]="itcast"; //占用了7個位元組因為'\0'占用了乙個
char str[10]=;
3)字元陣列的引用
如果把字元陣列的內容逐個取出,str[0]、str[1]....str[n-1];
%s 字串的格式控制符把字元陣列整體進行輸出
%s 給乙個字元陣列的首位址,系統會自動從首位址開始連續讀取直到遇到'\0'結束
4)儲存細節
字元陣列儲存的細節:
連續的一片儲存區域(位址是連續的),每個字元占用1個位元組
計算字元陣列(字串)的長度
針對這種定義方法,求長度(會包含'\0'):char str="abc"; //4
sizeof(str)/sizeof(char) = sizeof(str);
strlen也可以計算字串的長度(不包含'\0'):
strlen(str); //3
3、字元數字和普通陣列的區別
char str; //只能存字元型資料
int arr; //只能存整型 資料
4、常見的字串函式6個
gets(陣列名) 表示獲取從鍵盤數輸入的字串(可以接收空格)
puts(陣列名) 表示講陣列的內容輸出到控制台(可以自動換行)
strcat(陣列名1,字串) 表示把字串鏈結到陣列1中(回覆蓋陣列1的\0)
strcpy(陣列名1,字串) 表示把字串拷貝到陣列1中,會覆蓋陣列1中原有的內容
strcmp(字串1,字串2) 比較兩個字串的大小
字串1>字串2 >0
字串1《字串2 <0
字串1==字串2 ==0
strlen(陣列名) 計算字串的長度(不包括\0)
5、什麼是位址?什麼是指標?
記憶體被作業系統劃分了若干個儲存單元,每個單元是1個位元組(8位)
每個位元組都有位元組的位址,這個位址就叫指標。
位址和記憶體單元是兩個不同的概念
位址是記憶體單元的編號
記憶體單元是位址對應的實際儲存內容。
6、指標變數
用來存放位址的變數,就稱為指標變數
1)定義
資料型別 *指標變數名 ; //指標變數是個變數,指標是常量
"*" 在兩個場合起作用:
定義指標的時候使用 int *a; // *表示定義乙個指標變數
在指標對應的儲存單元內容的時候用 *a //表示獲取指標變數中存放的位址所對應的儲存內容
2)初始化
指標定義完成以後,要初始化,如果不初始化,則這個指標成為野指標
可以用null 也可以用 0 進行初始化,表示這是乙個空指標,什麼也不指。
正常情況下的初始化
int a;
int *p1 = &a;
3)訪問方法
*指標變數 //表示獲取指標變數中存放的位址所對應的儲存單元的內容
7、指標的使用場景
1)間接修改變數的值
8、多級指標
指標的指標
9、指標為什麼要區分型別
1)資料有不同型別,要指向不型別的資料也需要不同的指標
2)指標是乙個位址,*指標變數 不知道取多少個位元組的內容
c語言中的字元陣列與字串
一 字元陣列的定義 一維字元陣列 用於儲存和處理1個字串,其定義格式與一維數值陣列一樣。char str 20 二維字元陣列 用於同時儲存和處理多個字串,其定義格式與二維數值陣列一樣。char country 10 20 country 第i個字串 二 字元陣列的初始化 字元陣列的初始化.1.可以通...
C語言中的字串和字元陣列
1 字元陣列的定義與初始化 字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。char str 10 即把10個字元分別賦給str 0 到str 9 10個元素 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定...
c語言中的字串與字元陣列
1 字元陣列的定義與初始化 字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。char str 10 即把10個字元分別賦給str 0 到str 9 10個元素 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定...