C语言的运算符以及数据类型

来源:互联网 发布:淘宝内部优惠券可信吗 编辑:程序博客网 时间:2024/05/21 10:16

吐槽一下新浪的博客吧,真的让人很无语。刚刚写了好大一会自己一天的学习体验,就因为手残点了后退,然后什么都没了,再也找不到了,这用户体验也有够差的。

算了,刚刚写过的我也就不写了,挑点重要的复制一下

正数:unsigned  char a = 12
0000  1100 源码、反码、补码相同


负数:signed   char a = -12
1000  1100   源码(最高位是符号位)
1111  0011   反码(符号位不变,其它位取反)
1111  0100   补码(反码+1)

unsigned char b = -1;                        signed char c = 129;
存储(看数值):                                    存储(看数值):
                                         
源码:  1000 0001    --> -1               源码:  1000 0001   --> 129
反码:  1111 1110                          
补码:  1111 1111           读取(signed): 
                                                   
读取(unsigned):                          补码:  1000 0001    
   反码:  1000 0000
补码:  1111 1111    --> 255                     源码:  1111 1111   --> -127

本来自己都手写配了两张图来着,这里就不复制了,反正字写得也很丑。


3.全局变量和局部变量
全局变量,不初始化时为0。   
局部变量,不初始化时为随机值。
全局变量和局部变量名字相重时默认使用局部的变量。


4.常量

只读的数据。

字符常量  :‘A’  ‘*’  ‘!’ ‘\n’
整数常量  : 12    012    0x12
浮点型常量: 12.34
指数常量  : 1.2e-3
字符串常量: "world"//以‘\0’作为结束标志


"world" // w o r l d \0
‘W’ //一个字符 
"W" //字符串: 'w' + '\0'
5运算符

1--- 算术运算符
+  -  *  /  %(参与运算的只能是整数)

++   自增运算符;++在变量名的后面:则先参与其他所有运算,再执行自增
--   自建运算符;--在变量名的后面:则先参与其他所有运算,再执行自减

             
2--- 关系运算符
运算结果只有两种情况:真1  假0

<   <=    >    >=   ==   !=


3--- 逻辑运算
运算结果只有两种情况:真1  假0

&&  :一假则假   
||  :一真则真
!   :真变假,假变真

短路原则:当一个表达式可以决定整个运算的结果,其它运算不执行

4--- 位运算
~   :位运算取反
^   :异或,相同为0,不同为1
&   :位与
|   :位或
a>>n : a / 2^n;
a<<n : a * 2^n;


5--- 复合运算符
=  +=  -=   *=   /=  %=
&=  |=  ^=  <<=  >>=

6--- 条件运算符
<表达式1>  ?  <表达式2>  :  <表达式3>
先判断表达式1,为真执行表达式2, 为假执行表达式3


以上的都是我复制老师的笔记的,这都是我曾经写在新浪微博上的,可惜啥都没了。



今儿还学了一个,就是交换两个变量的值。

例:a=6,b=7

方法一:

t=a;

a=b;

b=t;

方法二:

a ^ = b

b ^ = a

a ^ = b

第二种方法真实可靠,我试过,可以的,^是异或,相同为0,不同为1



就这吧,明儿再更新明儿的好了。