C尖笔记

  1. putchar如果成功输出了字符,会返回这个字符。否则返回EOF。
  2. 如果for的循环体语句中没有使用continue语句,则以下for语句和while语句等价。

for (表达式1; 表达式2; 表达式3)
for的循环体语句
表达式1;
while (表达式2) {
for的循环体语句;
表达式3;
}

用了continue另当别论!

  1. 类型转换,大转小直接截断低位;小转大:无符号整数直接高位复制0,有符号复制符号位(最高位),这样的结果就是数字的值不变,变成了更大字节下的原值的补码。

浮点数的截断也是类似的。

  1. 注意while循环有时候没有自加。

若变量已正确定义,以下while循环结束时,i的值为11。

i = 1;
while (i <= 10){
    printf("%d\n", i);
}

这个是错的。

  1. 设变量已正确定义,选项( )与以下程序段不等价。

switch(op){
case '+': printf("%d", value1 + value2);
default: printf("Error");
case '-': printf("%d", value1 - value2);
}

A.
if(op == '+'){
printf("%d", value1 + value2);
printf("Error");
}else if(op != '-'){
printf("Error");
}
printf("%d", value1 - value2);

这俩等价……

    • ​​当 switch在循环内部时​​在循环内部的 switch语句中使用 continue会​​跳过当前循环迭代的剩余部分​​,直接开始下一次循环迭代。
  • 当 switch不在循环中时​​,如果 switch语句不在任何循环内部,使用 continue会导致​​编译错误​​,因为 continue只能在循环结构中使用。

break在switch里面只是跳出switch,但是continue是跳到循环下一步。

for(i = 11; i <= 20; i++){ 
    for(i = 1; i <= 10; i++){
        printf( "%4d", i );
    }
    printf("\n"); 
}

看起来好像里面的i会覆盖掉外面的定义变成局部变量,不会死循环,对吧?

实际上,它是一个i,没有重新定义,所以会死循环。

posted @ 2025-10-14 22:22  Zlc晨鑫  阅读(1)  评论(0)    收藏  举报