小编pro*_*mer的帖子

无符号整数打印

为什么会打印-1

#include <stdio.h>

int main(){
    unsigned int i = -1;
    printf("%d", i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

虽然这打印

#include <stdio.h>

int main(){
    unsigned int i = -1;
    printf("%u", i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

最大可能的整数值

另外,为什么会这样

#include <stdio.h>

int main(){
    int c = printf("Hello");
    printf("%d", c);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

打印 hello5 而不是 5。

埃里克的反驳//

你提到了副作用,对吧?

#include <stdio.h>
int main(){
int i = 0;
for (; i++; printf("%d", i));
printf("%d", i);
return 0; 
}
Run Code Online (Sandbox Code Playgroud)

为什么 for 循环内的 printf ("%d",i) 不打印此代码中的值作为副作用?

c printf

4
推荐指数
1
解决办法
1万
查看次数

程序输出说明

谁能解释为什么这个程序打印 4 1 而不是 4 2?

优先级较高的预增量运算符不应该首先执行并打印 4 2 吗?

#include <stdio.h>
int main() {
   int a=1;
   printf ("%ld %d",sizeof(++a),a);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c sizeof operator-precedence

2
推荐指数
1
解决办法
85
查看次数

标签 统计

c ×2

operator-precedence ×1

printf ×1

sizeof ×1