首页 > 代码库 > c语言知识(2)

c语言知识(2)

while(n)首先,n在这里被当作了一个条件
其次,当n为真时,进入while循环体(A);否则跳出循环继续执行下面部分(B).
n为0时条件为假  n不为0条件为真

 

while(j) {
if(j%10 == 2)        如何拆分一个整数
counter++;
j /= 10;}

 

如果一个整型常量的第一个字符是数字0,那么该常量将被视为八进制数。因此,10与010的含义截然不同

有时候在上下文中为了格式对齐的需要,可能无意中将十进制数写成了八进制数,这种情况需要注意。

用单引号引起的一个字符实际上代表一个整数 

但 判断条件可以是 if(d==‘R‘)

 

return语句的功能是结束函数的执行,并将返回值作为结果返回。返回值是常量、变量或复杂的表达式均可。如果返回值类型为void,则可以直接写return ;。

 

6.4 位运算

用于对整数类型(int, char, long等)变量中的某一位(bit)或者若干位进行操作。

六种位运算符:&  |  ^  ~  <<  >>

&:通常用来将某变量中的某些位置0且同时保留其它位不变,也可以用来获取变量中的某一位。

|:通常用来将某变量中的某些位置1且同时保留其它位不变。

^:通常用来将某变量中的某些位取反,且保留其它位不变。特点:若a^b = c,则c^b = a,c^a = b,可用于简单加密与解密。还能不通过临时变量交换两个变量的值。

  eg. int a = 5, b = 7;  a = a^b;  b = b^a;  a = a^b;  即可实现a,b值的交换。

~:单目运算符。

<<:a << b,将a各二进位全部左移b位后得到的值。左移时,高位丢弃,低位补0,a的值不因运算而改变。实际上,左移1位相当于乘以2,左移操作比乘法操作快很多。

>>:a >> b,将a各二进位全部右移b位后得到的值。右移时,移出最右边的位被丢弃,a的值不改变。右移一位相当于除以2,并将结果往小里取整。

  对于有符号数(char, int, long等),右移时符号位(即最高位)将一起移动。原符号位为1,高位就补充1;为0时同理。

 

2.字符串常量占据内存的字节数等于字符串中字符数目+1,多出来的是结尾字符‘\0‘,字符串的长度不包括‘\0‘。

3.""也是合法的字符串常量,称为空串,仍然会占据一个字节的存储空间存放‘\0‘。

 

.字符串函数都根据‘\0‘来判断字符串结尾

c语言知识(2)