定义一个char类型的数组,直接输出数组名到屏幕上显示的是什么?
#include <iostream>
using namespace std;
void main()
{
char words[5];
cout << (void*)words << endl;
}
输出:
解释:
char类型的数组涉及到字符串的操作,因此直接输出char数组的名字会输出字符串。因为没有初始化字符串数组,所以输出的是乱码。
程序修改为如下:
#include <iostream>
using namespace std;
void main()
{
char words[5] = { 'w', 'o', 'd', 'e', '/n' };
cout << words << endl;
}
即把字符数组初始化,输出结果如下:
解释:
字符结束需要结束字符,所以输出words时,不仅把初始化的内容输出出来了 ,还输出了一些乱码,直到遇到结束字符才停止。
如果是输出其他类型的(比如int)呢?
#include <iostream>
using namespace std;
void main()
{
int words[5];
cout << words << endl;
}
因为其他类型与字符串没有关系,不涉及字符串的操作。所以数组名就是数组的起始地址,也是第一个元素的地址,输出结果会是一个内存地址。