66问答网
所有问题
C语言字符型数据问题
若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是_____while(ch=getchar()=='A'); 为什么ch为0
举报该问题
推荐答案 2011-07-12
while(ch=getchar()=='A');
这个其实执行了两次,
你输入了A后敲了回车,这时getchar()得到的是字符'A',由于==的优先级高于=
所以getchar()=='A' 先执行,'A' == 'A',这个表达式值为1(真),所以ch=1,这是while中的条件也为1,所以while继续执行。
这是读入的字符是回车符,回车符显然≠'A',所以getchar()=='A' 这个表达式的值为0(假),所以ch=0,这是while里的条件为0了,所以while退出。
所以ch为0
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/nvUpixsvU.html
其他回答
第1个回答 2011-07-12
=和==的优先级不一样!==的优先级高于=,所以表达式ch=getchar()=='A'相当于ch=(getchar()=='A')
----------------------------------一楼正解!
第2个回答 2011-07-12
式子先判断getchar()=='A'为真或假,真的话将1赋值给ch,假就赋0,因为输入A时为真,ch=1,接着循环,循环到第二次为假,ch=0循环语句就没法执行了,跳出循环语句,最后结果ch为0
相似回答
为什么
c语言
的
字符型
可以进行数值运算
答:
首行答案:
C语言
的
字符型
可以进行数值运算是因为字符在计算机内部是通过ASCII码值来表示的,而ASCII码值是数值型的。详细解释:在C语言中,字符变量是用char
数据类型
声明的。每个字符在内存中都有一个对应的ASCII码值,这是一个整数值。例如,字符'A'的ASCII码值是65,字符'a'的ASCII码值是97。因此,...
为什么
C语言
中
字符
会自动转变为整型
数据
?
答:
在
C语言
中,字符会自动转换为整型数据的原因与C语言的
数据类型
和类型提升规则有关。C语言中的字符通常表示为
字符型
,但字符型实际上是整数类型的子类型。以下是一些相关的概念和规则:
字符类型
(char):在C语言中,字符类型(char)用于表示单个字符。字符在内部存储时通常以ASCII码或其他字符编码的整数值...
C语言字符型
char的
数据
存储是多少?
答:
在
C 语言
中,
字符类型
char 占用一个字节(8 位二进制位),即 sizeof(char) 等于 1。这是因为在 ASCII 码表中,每个字符都被编码成了一个 8 位的二进制数,范围为 0~255。因此,使用 char 类型来存储表示单个字符的 ASCII 码值非常方便和高效。需要注意的是,在一些特殊的编码方式下,字符...
c语言
中
字符型数据
在内存中的存储形式
答:
ASCII码表示、字节存储。2、ASCII码表示:每个字符在计算机中都有对应的ASCII码值,用来表示不同的字符,wchart类型的字符则使用Unicode编码。2、字节存储:
字符类型
占用一个字节(8位)的存储空间。这意味着每个字符都可以用8位二进制数来表示。最低位存储字符的实际值,而其他位用于特殊的控制字符或其他...
c语言
中
字符型数据
在内存中的存储形式是?
答:
字符型数据
在内存中储存的是它的ASCII码值,它是一个字节,所有
数据类型
在内存中都是以0和1代码二进制储存的,这个原则不会变。在
C语言
中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。编码中,一个汉字字符...
为什么
C语言
的
字符型
可以进行数值运算?
答:
在
C语言
中,实际上
字符型数据
在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先会将char型数据以隐形的方式转化成int型数据再进行相加减运算的。因此,由字符型数据在内存的存储方式来看,字符型数据是可以进行数值运算的,对字符型数据...
大家正在搜
c语言数字转化为字符
c语言字符串转数字
c语言字符类型
字符型数据有哪些
字符型数据
C语言字符
c语言定义字符
c语言中字符常量
字符串c语言
相关问题
C语言中有关有符号字符型(char)的问题
关于C语言中字符型变量
c语言中关于字符串长度的问题
C语言字符数组与字符串问题
c语言数据类型问题
C语言中关于字符型变量。
C语言数据类型问题
C语言 关于 字符型与非字符的问题