C/C++中怎样判断一个char是否已被赋值

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:23:00
我声明一个char a;未赋值
我打印printf("%d",a);
用VC6.0编译输出结果是-52,
而用TC2.0编译输出结果是103;
怎样判断一个char是否已被赋值呢?
“养成初始化所有变量的好习惯。这个好习惯要自己养成啊,不能依靠编译器哈。 ”

我就知道会有人这样回答,拜托各位大侠,看清题目撒,前三位的答案都不是我想要的

在每次声明char时 赋一个值.
在使用时 判断char变量的值 是不是初始时赋的那个值 如果不是 则改变了.

未初始的变量在c++中 值都是不确定的.

----------------------------------------

楼主也误会我们的意思了
"怎样判断一个char是否已被赋值呢?"
正确回答是不能直接判断.

因为一个char一声明的话就有一个随机的值 你说没值?它的确有.你说有值?它没有赋过值 那叫我们如何回答你?

我们回答给你的都是间接的解决方法 初始值则是属于其中的一个方法.

const char a ;
printf("%c",a);
这样即可.
编译器会判断a是不是已经赋初值的.没赋初值无法编译的.

养成初始化所有变量的好习惯。这个好习惯要自己养成啊,不能依靠编译器哈。

想问一下,你想要的是什么样的效果呢?设想是什么样的?
是不是下面语句类似的效果啊?
char a;
if(has_value(a))printf("%c",a);
else{error_no_value();}

如果是这样的话,偶就不知道了,如有知道的,麻烦大侠也能告诉我下哈。

没办法判断,C,C++和JAVA不一样,没有"空"值的概念,一个变量就算没赋初值,它对应的内存空间实际上也是有值存在的.

定义一个char时应该同时给它初始化;如果没对它初始化而使用,编译器会给它一个随机值