C和指针-1


从逻辑上删除一段代码

#if 0
    statements
#endif

## 字符串常量
"Hello" 占6个字节的空间,分别是H、e、l、l、o和NUL

## getchar()
``` c
( (ch = getchar()) != EOF && ch != '\n')
判断输入结尾
//

ch被申明为整型,但通常用来读取字符,因为EOF是一个整型值,它的位数比字符类型要多

数据

short int 至少是16位, long int 至少是32位

声明为枚举类型的变量实际上是整型类型

C语言不存在显示的字符串类型,字符串通常存储在字符数组中,是一串以NUL字节结尾的零个或者多个字符。在程序中使用字符串常量时会生成一个“指向字符的常量指针”。你可以把字符串常量赋值给一个“指向字符的指针”,但是不能把字符串常量赋值给一个字符数组,因为字符串常量的直接是一个指针。

操作符和表达式

右移操作存在逻辑移位和算术移位,10010110右移两位,逻辑移位是00100101,但算术移位是11100101.

计算参数值中1的位的个数,初级版本

int count_one_bits(unsigned value)
{
    int ones;
    for(ones = 0; value != 0; value = value >> 1)
    {
        if(value % 2 = 0)
        ones += 1;
    }
    return ones;
}

把指定的位设置为1和清0:

value |= 1 << bit_number; //1
value &= ~(1 << bit_number);

  • 分享:
评论
还没有评论
    发表评论 说点什么