gpt4 book ai didi

c - 为什么当变量类型不同时,下面的代码给出不同的输出?

转载 作者:行者123 更新时间:2023-11-30 21:08:18 25 4
gpt4 key购买 nike

//o/p when i/p is 16 and 2 is 4 and if  variable is int then o/p will be 20;   

#define SETBIT(A,B) A|1<<B

int main(){
char n,pos;
printf("Enter a value");
scanf("%d",&n);
printf("Enter position");
scanf("%d",&pos);
printf("Value after setting %d",SETBIT(n,pos));
}

最佳答案

对于 *scanf 函数,d 转换说明符期望其相应参数的类型为 int *;如果情况并非如此,则行为未定义,并且几乎任何结果都是可能的。

如果您想使用 char 表示 posn,则必须使用 %hhd 而不是scanf 调用中的 %d

关于c - 为什么当变量类型不同时,下面的代码给出不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39621937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com