C ';printf';从不带强制转换的整数生成指针

C ';printf';从不带强制转换的整数生成指针,c,printf,unsigned,C,Printf,Unsigned,我真的是一个新的C语言,我正在尝试用C语言运行以下代码: #include <stdio.h> int main() { unsigned long i = 1UL << 2; int j = (i==4); printf('%d', j); return 0; } 我不确定这里出了什么问题。有什么帮助吗?printf语句不能使用单引号。试试这个: printf("%d", j); 不能对printf语句使用单引号。试试这个: printf("%d",

我真的是一个新的C语言,我正在尝试用C语言运行以下代码:

#include <stdio.h>
int main()
{
  unsigned long i = 1UL << 2;
  int j = (i==4);
  printf('%d', j);
  return 0;
}

我不确定这里出了什么问题。有什么帮助吗?

printf语句不能使用单引号。试试这个:

printf("%d", j);

不能对printf语句使用单引号。试试这个:

printf("%d", j);

“%d”
是多字符文字,因为您在单引号字符中包含了多个字符。它的值由实现定义,但C标准坚持它是
int
类型。(因此编译器诊断为“整数指针”)

您希望使用双引号字符来代替
“%d”


printf
const char*
指针作为第一个参数。形式上,
%d“
是一种
常量字符[3]
类型,但通过一种称为指针衰减的机制,它成为第一个参数的合适值。

'%d'
是一种多字符文字,因为您在单引号字符中包含了多个字符。它的值由实现定义,但C标准坚持它是
int
类型。(因此编译器诊断为“整数指针”)

您希望使用双引号字符来代替
“%d”


printf
const char*
指针作为第一个参数。形式上,
“%d”
是一种
常量字符[3]
类型,但通过一种称为指针衰减的机制,它成为第一个参数的合适值。

单引号。对字符串“%d”使用双引号。单引号。对字符串“%d”使用双引号。