// 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;
}