依旧是指针输出问题
#include<iostream>using namespace std;
int main()
{
char a[5]={'z','h','o','n','g'};
char *s=a;
char *p="abcde";
for(int k=0;k<5;k++)
{
cout<<s[k];
}
cout<<endl;
cout<<s<<endl;
cout<<p<<endl;
cout<<&a<<endl;
cout<<(void *)s<<endl; //输出指针s指向的地址
cout<<sizeof(s)<<endl;
cout<<sizeof(a)<<endl;
return 0;
}
我的问题是:我希望语句cout<<s<<endl;输出zhong,但是它输出时zhong后面带了几个汉字和一个向上的箭头。所以我从它存储的地址分析,但毫无进展,反而有了新问题,一个指针它的值是地址值,所占内存永远是4字节,而地址值是16位,按照8位为一字节算,应该是2字节,为什么输出4字节呢?我的电脑是64位,编译器是VC++6.0。希望大家能解答。