[英]string printed in reverse without reversing in the code
我试图通过三元运算符声明它来打印字符串。 代替任何错误,它会反向打印字符串。
有人可以解释一下吗?
我期望基于输入将字符串打印为even
或odd
。
#include<stdio.h>
void main()
{
int a;
char *num;
printf("Enter a number: ");
scanf("%d", &a);
num = (a % 2) ? 'odd' : 'even';
printf("Its %s number", &num);
getch();
}
'odd'
和'even'
是整数字符常量。
根据C标准(6.4.4.4字符常量)
10整数字符常量的类型为int。 包含映射到单字节执行字符的单个字符的整数字符常量的值是解释为整数的映射字符表示形式的数值。 包含多个字符(例如,“ ab”)或不映射到单字节执行字符的字符或转义序列的整数字符常量的值是实现定义的。
所以在这次通话中
printf("Its %s number", &num);
您正在尝试将变量num
的地址输出为要尝试输出字符串的字符串的地址,但是num
并不指向字符串。
您必须使用字符串文字而不是字符常量。
你的意思是以下
num = (a % 2) ? "odd" : "even";
printf("Its %s number", num);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.