搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请教hhd转换字符在scanf中是不是把整数读取成char数据?谢谢
标题:
请教hhd转换字符在scanf中是不是把整数读取成char数据?谢谢
只看楼主
屋顶
等 级:
新手上路
帖 子:174
专家分:7
注 册:2016-2-27
结帖率:
92.86%
楼主
已结贴
√
问题点数:20 回复次数:30
请教hhd转换字符在scanf中是不是把整数读取成char数据?谢谢
请教hhd转换字符在scanf中是不是把整数读取成char数据?谢谢
2016-03-11 21:04
屋顶
等 级:
新手上路
帖 子:174
专家分:7
注 册:2016-2-27
第
2
楼
得分:0
#include<stdio.h>
main()
{
int i,k;
scanf("%hh%hhd",&i,&k);
printf("%d%d\n",sizeof(i),sizeof(k));
}
上面这些代码是不是打印成11呢?
2016-03-11 21:06
z13631440976
来 自:广州
等 级:
论坛游侠
威 望:
2
帖 子:40
专家分:118
注 册:2016-3-5
第
3
楼
得分:4
在c语言中 int 整型在内存中被分配4个字节
那么sizeof(int) 所求出来的值就为4
所以 输出节过应为44
2016-03-11 22:12
屋顶
等 级:
新手上路
帖 子:174
专家分:7
注 册:2016-2-27
第
4
楼
得分:0
回复 3楼 z13631440976
但是我在书上看见%hhd在scanf函数中将整数读取为signed char或unsigned char类型,这怎么理解呢
2016-03-11 22:44
江湖一笑
等 级:
论坛游民
帖 子:9
专家分:21
注 册:2013-9-9
第
5
楼
得分:4
hh根本就不是什么修饰符,你定义的是int型的数据,怎么会通过hh强制转换成char型的数据呢
2016-03-11 23:05
屋顶
等 级:
新手上路
帖 子:174
专家分:7
注 册:2016-2-27
第
6
楼
得分:0
回复 5楼 江湖一笑
这张图片中的hh怎么理解呢
2016-03-11 23:09
屋顶
等 级:
新手上路
帖 子:174
专家分:7
注 册:2016-2-27
第
7
楼
得分:0
回复 5楼 江湖一笑
那%hhd呢,
2016-03-11 23:16
江湖一笑
等 级:
论坛游民
帖 子:9
专家分:21
注 册:2013-9-9
第
8
楼
得分:0
不好意思,我没有见过hh,所以刚才说错了,看了你发的图片,和你一样期待高手来解答
2016-03-11 23:18
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
9
楼
得分:4
程序代码:
#include
<stdio.h>
int
main(
void
) {
signed
char
ch; scanf_s(
"
%hhd
"
, &ch,
1
); printf_s(
"
%c\n
"
, ch); }
你輸入65看看輸出什麽?
授人以渔,不授人以鱼。
2016-03-11 23:20
jklqwe111
等 级:
贵宾
威 望:
35
帖 子:335
专家分:1125
注 册:2014-4-13
第
10
楼
得分:4
c语言变量定义后就不能改变其数据类型了,在表达式求值和强制转换时,也只是把变量的值做一次转换,并不改变原变量的类型,也就是说变量内存大小是不变的,sizeof计算的值是不变的,至于scanf中的格式串更不能改变变量的大小了,另外sizeof计算的是变量的存储空间大小,不是变量中值的实际占位。
2016-03-11 23:21
31
1/4页
1
2
3
4
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-462381-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.401526 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved