由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 谁给新手解释一下这个c++小程序
相关主题
C++菜问: 怎么这样也可以?请问一个exception题目
请教一个c++ reference问题发个初级面试题
题2为什么我看不懂下面的code,是不是水平还不够?
c++环境入门问题C++疑问
一个指向指针的指针的引用?two c++ interview questions! (转载)
问个char*的问题请教一个作用域的问题
两个继承问题[合集] 关于template和inheritance的问题请教
a simple question for C++ classcompare double to float
相关话题的讨论汇总
话题: count话题: nchar话题: int话题: lots话题: 1000
进入Programming版参与讨论
1 (共1页)
o**********a
发帖数: 330
1
#include
using namespace std;
int str(const char a[]){
int count=0;
while(a[count]){++count;}
return count;
}
int main(){
char lots[1000];
int nchar=str(lots);
cout< return 0;
}
为什么nchar=1011
p***o
发帖数: 1252
2
The program has UNDEFINED behavior. So you can get ANY int as the output.
To see why:
1 Since you didn't initialize lots[1000], reading a[count] for any
0 <= count < 1000 is undefined.
2 Reading a[count] for any count >= 1000 is undefined. You need to
guard against it.

【在 o**********a 的大作中提到】
: #include
: using namespace std;
: int str(const char a[]){
: int count=0;
: while(a[count]){++count;}
: return count;
: }
: int main(){
: char lots[1000];
: int nchar=str(lots);

a********n
发帖数: 1287
3
1011只是巧合,
可能是任意大于1000的结果。
字符数组不是字符串,不是以NULL结尾的。
f*****Q
发帖数: 1912
4
为什么不能是小于呢?

【在 a********n 的大作中提到】
: 1011只是巧合,
: 可能是任意大于1000的结果。
: 字符数组不是字符串,不是以NULL结尾的。

a********n
发帖数: 1287
5
你说的对,可能小于1000

【在 f*****Q 的大作中提到】
: 为什么不能是小于呢?
e*******c
发帖数: 804
6
try the change below.

char lots[1000] = {'\0'};

【在 o**********a 的大作中提到】
: #include
: using namespace std;
: int str(const char a[]){
: int count=0;
: while(a[count]){++count;}
: return count;
: }
: int main(){
: char lots[1000];
: int nchar=str(lots);

1 (共1页)
进入Programming版参与讨论
相关主题
compare double to float一个指向指针的指针的引用?
[合集] C++问题(copy constructor)问个char*的问题
问一个简单的C++问题两个继承问题
0 < -1 ? A c++ questiona simple question for C++ class
C++菜问: 怎么这样也可以?请问一个exception题目
请教一个c++ reference问题发个初级面试题
题2为什么我看不懂下面的code,是不是水平还不够?
c++环境入门问题C++疑问
相关话题的讨论汇总
话题: count话题: nchar话题: int话题: lots话题: 1000