这段码为何会输出-1?

#include <stdio.h>
int main()
{
char x=0xFFFF;
printf("%d\n", x--);
return 0;
}

x是0xFFFF,以%d打印就是将0xFFFF扩展为0xFFFFFFFF,以有符号10进制打印出来
x--返回的是x,因此
printf("%d\n", x--);

printf("%d\n", x);
没区别,都是打印同一个数
0xFFFFFFFF,打印出来的就是-1
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言这段码为何会输出-1?
在执行printf时会对x进行符号扩展【char表示有符号数据,所以会进行符号位扩展】,因为x的符号位为1,所以整个数据扩展为0xFFFFFFFF这样一个值,而这个值是-1的补码,按有符号数据打印出:-1。输出后执行x=x-1,这时x的值变为-2

这段码为何会输出-1?
x--返回的是x,因此 printf("%d\\n", x--);跟 printf("%d\\n", x);没区别,都是打印同一个数 0xFFFFFFFF,打印出来的就是-1

为什么这一段代码的fscanf在一开始读文件的时候值就是-1???_百度知 ...
fscanf 返回值 是 成功读入的参数个数,你用它去与 EOF 比较 不合适。所以你的那句 if(((fscanf...; 要重新写。要符合逻辑,符合语法。读语句执行后 feof(fp) 才会 更新 返回 刚致行的读 是否 到达 文件结束处。循环语句应是:while (1){ fscanf (); \/\/ 读语句 if (feof(fp)) { ...

求解释这段代码int count=-1的意义
没什么意义,这个里面i表示是这个数组的第几位,数组是从第0位开始算的,比如你这个数组。2的话的ary[0]=2. 把i赋值给count,然后输出count就表示你要找的数字再第几位,所以肯定不能是0或者1234.那么就随便定义一个在int范围内的数字就行。你用10000000.用-2.-3都可以。只要在下面做判断的...

这段C语言代码最后为什么是n-1
数组的话,N代表个数,不是序列号。序列号是从“0”起的,个数是N个的话,序列号最后一个是n-1了。btw:字符序列最后一个是“\\0”,所以长度还要减少一个,不然就溢出了

vue的这段排序代码看着不是很懂, p => p.name.indexOf(searchperson...
p => p.name.indexOf(searchperson)!== -1 这个=> 是箭头函数,会绑定作用域(this不是指函数作用域,而是上级作用域的this,这里没用到,可以不用管),并返回后面js的结果。转化成普通函数就 相当于 function (p) { retrun p.name.indexOf(searchperson)!== -1 } ...

请问下面这段python的def中def的最后一行的f(int(s[:-1]))是什么意思...
这个函数是返回一个数字的倒叙# 比如: 123 -> 321# 递归调用:# f(int(s[:-1])) 是截取字符串从开头到倒数一个字符的子串,作为下一次的输入# 比如: "123"[:-1] -> "12"def f(n): s = str(n) if len(s) <= 1: return s return s[-1] + f(int(s[:-1...

vue的这段排序代码看着不是很懂, p => p.name.indexOf(searchperson...
这是数组的filter方法返回true的元素,会在映射后的数组里,返回false的元素,不会出现在映射后的数组中 具体请查看www.runoob.com\/jsref\/jsref-filter.html 请采纳

关于C语言在主函数 main 的返回值为0
首先,这段代码是先执行了输出99在屏幕上,然后在退出之前才返回的0。而不是正常退出了之后系统才去处理输出。其次,返回多少是程序员自己控制的,你喜欢将你上面代码的return 0改成return -1,程序就返回-1出去。另外,程序出错的时候,也不会自动返回什么值给系统,全都是程序员自己代码控制。而至于...

一个函数的功能为在数组a中查找值为key的元素,如果找到输出该元素...
代码如下:search(int a[],int x){ int i;for(i=0;i

相似回答
大家正在搜