DAY01

<1>可能遇到的一个问题:显示执行的窗口在程序终止时,突然消失。

如果遇到这种情况,那么可以使程序暂停,直到按下【Enter】键,要做到这一点,请在程序的末尾,恰好在return语句之前,添加下面一行:

getchar();

该行读取一次按键,因此陈谷将暂停直到按下【Enter】键时。

有时,根据程序函数的需要,可能已经有一个等待的指令,这种情况下需要使用getchar()两次:

getchar();

getchar();


<2>要从逻辑上删除一段C代码,更好的办法是使用#if指令,只要像下面这样使用:

#if 0

statements

#endif

在#if和#endif之间的程序段就可以有效地从程序中去除,即使这段代码之间原先存在注释也无妨。


<3>C中名字的选择:

可供使用的字符有小写字母、大写字母、数字和下划线(_),第一个字符必须是字母或者下划线。


<4>常量

int const a;

const int a;

这两条语句都是把a声明为一个整数。

怎样让它在一开始拥有一个值呢?

方法:<1>在声明时对它进行初始化:int const a = 15;

 <2>在函数中声明为const的形参在函数被调用时会得到实参的值。


int const *pi;

const int *pi;

是指向整型常量的指针,可以修改指针的值,但不能修改它所指向的值。

int * const pi;

声明pi为一个指向整型的常量指针,此时指针是常量,它的值无法修改,但可以修改它所指向的整型的值。

int const *const pi;

最后在pi这个例子里,无论是指针本身还是它所指向的值都是常量,不允许修改。


<4>break和continue语句

break语句用于永久终止循环;continue语句用于永久终止当前的那次循环。

这两条语句的任何一条如果出现于嵌套的循环内部,它只对最内层的循环起作用。


<5>算术操作符

C提供了所有常用的算术操作符:+  -  *  /  %

除了%操作符,其余几个操作符都是既适用于浮点类型,又适用于整数类型。

%为取模操作符,它接受两个整型操作数,把左操作数除以右操作数,但它返回的值是余数而不是商。


<6>移位操作符

在左移位中,值最左边的几位被丢弃,右边多出来的几个空位则由0补齐。

右移位操作存在一个左移位操作不曾面临的问题:

从左边移入新位时,可以选择两种方案,一种是逻辑移位,左边移入的位用0填充,另一种是算术移位,左边移入的位由原先该值的符号位决定,符号位位1则移入的位均为1,符号位位0则移入的位均为0,这样能够保证原数的正负形式不变。

左移位操作符位<<,右移位操作符为>>。


<7>位操作符

位操作符对它们的各个位执行AND、OR和XOR(异或)等逻辑操作。

位操作符有:

&| ^

它们分别执行AND、OR和XOR操作。它们要求操作数为整数类型,它们对操作数对应的位进行指定的操作,每次对应左右操作数的各一位进行操作。

位的操纵:

(a)把指定的位设置为1

value = value | 1 << bit_number;

(b)把指定的位清0

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

(c)对指定的位进行测试

value & 1 << bit_number

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值