目 录CONTENT

文章目录

CPrimerPlus笔记

smallkun
2022-07-15 / 0 评论 / 0 点赞 / 203 阅读 / 596 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-07-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我删除。

第六章 C语言控制语句:循环

6.3.3新的_Bool类型

在C语言中一直用int类型的变量表示真假。C99专门针对这种类型的变量新增了_Bool类型。该类型是以英国数学家George Boole的名字命名的,他开发了用代数表示逻辑和解决逻辑问题。

#include "stdio.h"

int main(void){

    long num;
    long sum = 0L;
    _Bool input_is_good;

    printf("Please enter an integer to be sumed ");
    printf("(q to quit):");
    input_is_good = (scanf("%ld", &num) == 1);
    while(input_is_good){
        sum += num;
        printf("Please enter next ineter (q to quit)");
        input_is_good = (scanf("%ld", &num)==1);
        printf("%d\n", input_is_good);
    }
    printf("Those inegers sum to %ld\n", sum);

    return 0;
}

顺带一提,从优先级方面考虑的话,并不需要用圆括号把scanf("%ld", &num) == 1括起来,这样做可以提高代码可读性。还要注意,如何为变量命名才能让while循环的测试简单易懂

C99提供了stdbool.h头文件,该文件让bool成为了_Bool的别名,而且还把truefalse为别定义为1和0的符号常量。包含头文件后,写出的代码可以与C++兼容,因为C++把booltruefalse定义为关键字

如果系统不支持_Bool类型,导致无法运行该程序,可以把_Bool替换成int即可


第七章 逻辑运算符

7.3.1 备选拼写:iso646.h头文件

C是在美国用标准美式键盘开发的语言。但是在世界各地,并非所有的键盘都有和美式键盘一样的符号。因此,C99标准新增了可替代逻辑运算符的拼写,他们被定义在iso646.h头文件中。如果在程序中包含了该头文件,便可and替代&&or替代||not替代!

#include "stdio.h"
#include "iso646.h"

int main(void){

    if (not 0){
        printf("not 0\n");
    }

    if (1 and 0){
        printf("1 and 0\n");
    }

    if (1 or 0){
        printf("1 or 0\n");
    }

    return 0;
}

读者可能会很好奇,为何C不直接使用and、or和not?因为C一直坚持尽量较少的关键字


第十一章 字符串和字符串函数

0

评论区