郁闷了半天了,怎么 结果可以是这个郁闷。。。#include iostreamusing namespace stdvoid main(){char s1[]
郁闷了半天了,怎么 结果可以是这个 郁闷。。。
#include <iostream>
using namespace std;
void main()
{
char s1[]="diweiguang",s2[30],*p,*q;
p=s1;
q=s2;
for(;*p!='\0';p++,q++)
*q=*p;
*q='\0';
//p=s1;
//q=s2;
cout<<*q<<endl;
cout<<*p<<endl;
}
我输出*q和p的时候输出的结果居然是两个 a a
我想了半天也想不出 会输出时a 啊 求大神指点下。。。。。
[解决办法]
p, q指针在循环之后都指向'\0'了.
[解决办法]
贴出来的代码输出两个a是不可能的。
因为,在最后输出的时候:
*p会指向'\0'因为for结束时*p == '\0'并且之后没有给p赋过值
*q也会指向'\0'因为for结束后执行了*q = '\0'
看以正确这段代码的输出应该是两个空行,建议楼主发帖先把代码贴在任一C++开发环境中编译执行一下:)
[解决办法]
楼主是刚学编程么?这么愚蠢的问题
[解决办法]
哥在另外一个帖子中给你回答了,请看那个帖子中9楼的回复。
下次再错就该打pp了
