这个问题错哪了?
#include <stdio.h>void main()
{
int i=8;
printf("%d\n",++1);
printf("%d\n",--1);
}
F:\学习\visual c++ 6.0\data exceed\exceed.c(5) : error C2105: '++' needs l-value
F:\学习\visual c++ 6.0\data exceed\exceed.c(6) : error C2105: '--' needs l-value
执行 cl.exe 时出错.
data exceed.exe - 1 error(s), 0 warning(s)
本帖最后由 风过无痕1989 于 2020-10-24 14:12 编辑
printf函数,之所以称它为格式化输出函数,该函数的声名如下:
int printf(const char *format, ...);
可以看到printf函数的声明就会有点懵,它参数的写法与我们之前学到的函数知识不一样,printf函数的参数的个数和类型都是可变的,每一个参数的输出格式都有对应的格式说明符与之对应
你左边使用的控制符是 %d,右边对应的是个 + 号(下一句是个减号),故而出错;格式控制符比后面的变量多了、少了,都可能造成输出结果不正确
本帖最后由 nk54 于 2020-10-24 02:03 编辑
风过无痕1989 发表于 2020-10-24 01:31
printf函数,之所以称它为格式化输出函数,该函数的声名如下:
哦,原来是我把i敲成1了,哈哈
nk54 发表于 2020-10-24 02:01
哦,原来是我把i敲成1了,哈哈
满意了就请结帖,给个最佳答案吧~~ 风过无痕1989 发表于 2020-10-24 01:31
printf函数,之所以称它为格式化输出函数,该函数的声名如下:
你理解错了吧,1是一个字面量右值,怎么能对一个右值进行自增自减操作呢? 本帖最后由 风过无痕1989 于 2020-10-24 14:05 编辑
lhgzbxhz 发表于 2020-10-24 13:27
你理解错了吧,1是一个字面量右值,怎么能对一个右值进行自增自减操作呢?
早上我试的时候能够运行的,我再试试
谢谢提醒! 编译器现在骗不了啦,我修改上面的说法
页:
[1]