#include <string>
#include <iostream>
#include <string.h>
using namespace std;
void main()
{
string a1 = "wo";
string a2 = "her" + a1;
string a3 = "her" + a1 + "wo";
cout << &a2 << endl <<&a3 << endl;// a2: 0043FBF4 a3: 0043FBCC
char a4[] = "wo";//含 \0
cout << sizeof(a4) << endl;//长度为3
cout<< &a4 << endl; // 0045FBF0
if (strcmp(a1.c_str(), a4) != NULL)//两者不相等
{
}
char a5[] = {'w', 'o'};
if (strcmp(a1.c_str(), a5) != NULL)//两者相等
{
cout << "a5 :" << a5 << endl;// a5 : wo烫烫烫烫
char cou[] = {'w','\0', 'o'};
cout << "cou :" << cou << endl; // cou : w;(cout 遇到\0表示结束)
}
char a6[2];
a6[0] = 119;//w的ASCII码值
a6[1] = 111;//o的ASCII码值
if(strcmp(a1.c_str(),a6) != NULL)//两者相等
{
cout<< "a6 : " << a6 << endl;//a6: wo烫烫烫烫
}
char *a = "aa";
printf("%p\n", a);//a: 008EB89C
cout << &("aa") << endl << &a << endl;//&("aa") : 008EB89C; &a:0038FA3C
string p = a + a1;
cout<< "p is "<< p <<" SIZE is " << p.size() << "C_STR IS " << sizeof(p.c_str())<< "Length is "<<p.length()<< endl;//size : 4 c_str: 4 length: 4
string a7 = "aa" + a1 + "bb" + "cc";
//string a8 = "aa" + "bb" + a1;//ERROR "aa" 与 "bb"为 两个字符字面值 存储在字面值常量区
cout << "a7's address is " << &a7 << endl << "a1's address is " << &a1 << endl;//a7 : 0038F9EC; a1 : 0038FABC
cout << &("aa") << endl<< &("bb") << endl << &a7 << endl << &a; //&("aa") : 008EB89C; &("bb") : 008EB85C ; &a : 0038FA3C
};
字符数组 使用字符串做初始化时, 数组的长度 包含 结束符 \0
char *a = "aa";
char *b = "aa";
指针a 与 指针b 中包含的都是 常量值aa 的地址信息(00EB8B0)