关于字符数组和整型数组的指针问题!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/07/02 03:44:32
程序如下
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int i[]={1,2,3,4,5,6,7};
int * pi=i;
char j[]={'a','b','c'};
char * pg=j;
cout<<i<<"\n"<<j<<endl;
return 0;
}
结果如下
0012FF64
abc茏?

问什么指向整型数组的指针是内存的地址这可以理解,而指向字符数组的指针是数组的实际内容加乱码???
我想问的是问什么直接输出数字的指针:"cout<<i"则会是指针i的值。而直接输出字符串指针:"cout<< + 一个指针" 则会是他的实际字符串的值!问什么直接输出字符串指针不是他的指针值?想输出他的指针的值应该怎么办呢?

字符数组要一个一个输出,比如"cout<<j[1]<<j[2]<<j[3]"
直接用"cout<< + 一个指针"是用来输出字符串的
而地址j指向的字符数组没有字符串末尾表示'\0',自然会出现乱码
至于整数也不能这样输出
你用"cout<<i"输出的是指针i的值!!
也许这样讲不怎么能听明白,相信等你看完指针那一章就能明白了···