输出的意外结果
#include<iostream>using namespace std;
void main()
{
char Ar[5]="abcd";
const char *Arr =Ar;
for(int i=0;i<5;++i) { cout<<*Arr++; cout<<i+1;}
cout<<endl;
}
我猜想出的结果是a1b2c3d4?5
或者是a1b2c3d45
但实际结果却是a1b2c3d4 5(多了一空格键)
请各位指点:
同意二楼,你Arr[4]没赋值系统会自动赋0
同意二楼,你Arr[4]没赋值系统会自动赋0
不完全同意这观点,那个是字符串的结束符号,同时也是转义字符“空格”,那里并不是可有可无的,要是赋值成a[5]="abcde";编译会出错
不完全同意这观点,那个是字符串的结束符号,同时也是转义字符“空格”,那里并不是可有可无的,要是赋值成a[5]="abcde";编译会出错
补充一下,,如果不要null结束符,只能a[5]={a,b,c,d,e}
补充一下,,如果不要null结束符,只能a[5]={a,b,c,d,e}
我也补充一下,呵呵
如果这样定义,就不能使用 %s 输出了,很多字符串的函数也都不能用
[此贴子已经被作者于2007-3-11 19:02:51编辑过]