iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1
自我挑戰組

學習30天的c++系列 第 20

DAY20 學習30天的c++

  • 分享至 

  • xImage
  •  

字元資料char
型態:char、char[]
char有宣告字元,空間1位元組、char letter = 'A';
char[]則是宣告字串,空間n位元組char str1[3] = {'A','+','+'};
char str2[4] = "C++";
char str3[] = "A++有好成績";
char sr1[3] {'A','+','+'};配置了3個字元空間給變數str1,char str2[4] ="C++";配置了4個字元給變數str2,char str3[] = "A++有好成績";根據字串資料的長度配置空間給str3。
ASCIIZ字串:是以'\0'為結尾的字串,當程式使用字串時,C++會自動加入'\0'到字串資料的尾端形成ASCIIZ字串,但不加'\0'到字元尾端。所以C++語言中,字元資料('A')與字串資料("A")是不同的,C++將在"A"結尾加入'\0',因此配置3個字元空間給字元陣列資料,{'A','+','+'},配置4個字元空間給字串資料"C++"。
字元空間'A'占用1bytes的記憶體空間,而字串資料"A"占用2bytes的記憶體空間。所以宣告陣列變數str1時,只保留1bytes的空間,而宣告陣列變數str2時,則須保留2bytes的空間。
下面範例敘述char letter0是宣告字元變數但未指定變數初值,char letter1 = 'C'則宣告並指定letter1的指定初值為C字元,char letter2=67初值等於C的十進位ASCII碼,char letter3 = 0x43的初值0x43等於字元C的十六進位法ASCII碼,char tab = '\t'是指定tab的初值為定位符號,char string[] = "ASCI C++"的char string[]為宣告字元陣列。
試一下

#include <iostream>
using namespace std;

int main(int argc, char** argv)
{
	char str1[] = "第一航";
	char str2[] = "第二航";
	char tab = '\t';
	cout << str1 << tab << str2 << endl;
	system("PAUSE");
	return 0;
}

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20201003/2013065844mCQH8ZNk.png


上一篇
DAY19 學習30天的c++
下一篇
DAY21學習30天的c++
系列文
學習30天的c++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言