字符串数组的困惑

// TestCharArray.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

 

int main(int argc, char* argv[])
{
 char szArray1[] = "My CharArray Test";
 cout<<szArray1<<endl;

 

 char szArray2[] = {'m','y',' ','.','.','.'};  //存在错误
 cout<<szArray2<<endl;

 

 cout<<endl;

 return 0;
}

 

 

这其实,并不能算是一个问题吧,只是,学习C语言,或者C++,在于她们有太多灵活的东西,如上所示,应该在szArray2的后面加上一个字符串的结束标志才好,正确的字符串数组初始化应该为  char szArray2[] = {'m','y',' ','.','.','.','/0'}; 因为,如果不加最后面的一个 '/0'作为结束标志的话,编译器只是把数组 szArray2,作为一个单纯的存储字符的数组而已,而不是一个字符串处理,因而,在输出szArray2里面内容的时候,可能会有乱码的出现,写下来就当是引以为戒罢了,最后修改后的程序如下:

 

// TestCharArray.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

 

int main(int argc, char* argv[])
{
 char szArray1[] = "My CharArray Test";
 cout<<szArray1<<endl;

 

 char szArray2[] = {'m','y',' ','.','.','.','/0'};
 cout<<szArray2<<endl;

 

 cout<<endl;

 return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值