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);