C++ 字符数组 与 字符串

#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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值