C风格字符串与标准输出流

一、字符数组输出

C风格的字符数组在遇到标准输出流时会输出,直到遇到’\0’为止:

char a [3] = {'0','1','2'};
cout << a;

输出不做展示,但估计会有乱码,因为在字符串末尾并没有字符串结束符。

二、指向char的指针

类似于第一条,当标准输出遇到char的地址时,会将其当成字符串输出,直到遇到’\0’为止:

char b = '0';
char * c = &b;
//两条输出得到的结果相同
cout << c << endl;
cout << &b << endl;

三、指向char的指针数组的输出

	char* a[3], b[3] = {'1','0','\0'}, c = '2', d = ' 3';
	a[0] = b; a[1] = &c; a[2] = &d;
	cout << a << endl;
	cout << a[0] << endl;
	cout << *a[0] << endl;
	cout << &c;

输出如下:

代码输出

  • 输出a[0]和输出a所输出的地址实际时相同的,但在这里a是指针数组的地址,a[0]则被解释为char类型数组b的首元素地址,所以a[0]会输出b字符串的内容;
  • 当对a[0]解引用后,*a[0]实际是b中的第一个字符,所以输出1;
  • 输出c的地址时,会如第二点所说,将其当成一个字符串输出直到遇到’\0’。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值