字符類型char、字符串與字符數組、字符數組與數據數組區別


字符類型是以ASCII碼值運算的:
小寫字母比相應的大寫字母大32,其中A=65,a=97
Esc鍵 27(十進制)、'\x1B'(十六進制)、'\33'(八進制)

轉義字符:
\0 空字符     ASCII碼值 0
\n 換行
\r 回車
\t 水平制表符(Tab鍵)
\' 單引號
\" 雙引號
\\ 反斜杠

注意:英文字符用單引號,中文字符用雙引號(2個字節/中文字符,以字符串方式存儲)

#include<iostream>
using namespace std;

int main()
{
    char c = 'M'; //等效於ch=77;M的ASCII碼值77,'\x4D'或'\115'
    char b[] = "";//2+1=3個字節
    char str[] = { '1','m',"" };//1+1+(2+1)=5個字節
    cout << str[2]<<str[3];//中文字符,2個字節,都輸出才輸出“嗨”
    return 0;
}

字符串與字符數組

字符串:以隱含的空字符\0結束,占用字節數+1,注意:1字節/字母,2字節/漢字
字符數組:不包含空字符,占用字節數不需+1

char ch[6]= "China"; //6字節,ch[5]是\0
char ch[5]={'C','h','i','n','a'}; //5字節
char str[3][5] = { "Tom","John","Mary" };//3×5=15字節。定義變量就是划定內存

字符數組與數據數組區別:
字符數組輸入\輸出時,不需要循環遍歷,cout對字符型指針變量做了特殊處理,具體如下

#include<iostream>
using namespace std;
int main() {
    char str[4] ="Tom";//3+1=4字節
    char *p = str; //指向首地址
    cout<<p<<endl; //Tom,全部輸出,從首地址到最后的值。
    cout << p + 1 << endl;//om,從第二個地址到最后的值。
    cout << p[0]<<endl; //T,等效於*p
    cout << (int *)p << endl; //顯示首地址
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM