我的代码:
int main() {
int x = 10, y;
y = printf("x = %d\n", x);
printf("y = %d\n", y);
return 0;
}
输出:
x = 10
y = 7
我知道printf在打印字符串时返回字符数。但为什么打印10时返回7。打印int时printf的返回值是多少?
可能重复:C中printf()函数的返回值
读取:int printf(常量字符*格式,…);
成功时,返回写入的字符总数。
对于代码首次打印F中的x=10
:
printf("x = %d\n", x);
打印七个字符x=10\n
,并返回在y
中接收到的7:
x = 10\n
1234567
^ ^ ^- new line char \n
| |--spaces
记住\n
(新行)是单字符,空格是单字符。
-2147483648是32位整数类型的最小整数,但它似乎会在
问题内容: 我正在阅读有效的Java,它在各处都用于换行符。我已经相当成功地在Java程序中使用了换行符。 哪个是“正确”的?这有什么错?Java为什么要更改此C约定? 问题答案: 从快速的Google: 还有一个说明符与参数不对应。输出行的是“%n”。在某些情况下,也可以使用“ \ n”,但是由于“%n”总是输出正确的平台特定的行分隔符,因此它可以跨平台移植,而“ \ n”则不能。
出于某种原因,在下面的递归函数中, 永远不递增p,也就是说字符串s永远不是一个回文,尽管在我的程序中,s确实是一个回文,次数相当少。但是在下面一行中它仍然返回false 是因为功能吗?s采用的一些值为:aaa、aba、AAAA、abbb、bab 我已确保s中没有前后空格 P、 S:我已经检查过了,x==n 示例输入: 输出0。回文:aaaaaa、abaaba、aaaaaa
Java1.8正在接收类,它允许我们显式地说明一个方法何时可能返回空值,并在使用它之前“强制”它的使用者验证它是否为空()。 我看到C#有,它执行类似的操作,但使用的是基本类型。它似乎用于DB查询,以区分值是否存在且为0,以及值是否不存在且为NULL。 但似乎C#的对对象不起作用,只对基本类型起作用,而Java的只对对象起作用,对基本类型不起作用。 在C#中是否有一个可为空的/可选的类,迫使我们在
我试图检查unordered_set的insert()函数的返回值,但遇到以下错误: 错误-->请求将“std::pair ,bool>”转换为非标量类型“std::unordered_set::iterator{又名std::__detail::_node_iterator }”
我在玩C语言中的函数指针只是为了学习。我尝试调用一个空函数,并将其结果设置为int。 我从中得到的结果是: 在对它进行了一点研究之后,我意识到main正在函数()中打印printf语句中的字符数。为什么会这样?这是预期产出吗?