【c++】char* char*[] char** string

char *s;
s="China";

爲什麼char*可以賦值一個字符串呢,是因爲字符串本身就是一個地址,它是首地址的地址。

char*a[]={"China","Franch","America","German"};

[]優先級高於* 所以a先和[]結合,是一個數組,然後數組中每個元素是char*。

char*a[]={"China","Franch","America","German"};
char**s=a;

爲什麼a能賦給s,因爲數組名a代表數組元素內存單元的首地址,即a=&a[0]=0012FF38;而0x12FF38即a[0]中保存的又是00422FB8,這個地址,00422FB8爲字符串“China”的首地址.

在計算機組成中有間接尋址,這就運用了相似的原理。二級指針就是尋址兩次。

*s=0042FB8="China"

char和string的轉換

#include<iostream>
using namespace std;
 
int main()
{
	char a[]=" abcd"; 	
	
	string s=a;  //直接賦值
	
	cout<<s;	
	
}

在這裏插入圖片描述

string的特性描述:

int capacity()const; //返回當前容量(即string中不必增加內存即可存放的元素個數)

int max_size()const; //返回string對象中可存放的最大字符串的長度

int size()const; //返回當前字符串的大小

int length()const; //返回當前字符串的長度

bool empty()const; //當前字符串是否爲空

void resize(int len,char c);//把字符串當前大小置爲len,並用字符c填充不足的部分

發佈了26 篇原創文章 · 獲贊 0 · 訪問量 615
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章