C语言---基础概念和常识

 基础概念

-----------------ASP.Net+Unity开发、.Net培训、期待与您交流!--------------------


一、 算术运算

    运算符是我们经常用的东西,计算时肯定会用到;
1,算数运算符

    1)+(加)    除了加法运算,还能表示正号:+10

    2)-(减)    除了减法运算,还能表示负号:-10

    3)*(乘)    注意不是x,而是*

    4) /(除)   不是÷,而是/

    5)%(取余)  注意的是%运算两边必须都为整数,正负性取决于左侧的数值; 

    注意点:自动类型转换

           int a  = 1.1; 大类型转化为小的,会丢失精度; 

           int b = 1.1 + 2;

          自动类型提升

           int b = 1.1 +3; 将3提升为double类型

          强制类型转换

          double a = (double)1/2;

    结合方向为从左向右;

二,赋值运算

      1) =      a = 1     赋值运算是将值给a这个变量;

     2)+=      a+=1      相当于a = a + 1;

     3)- =     a-=1      相当于a = a - 1;

     4) *=      a*=3-1    相当于 a = a*(3 - 1);

     5) / =     a /=3+1   相当于 a = a/(3 + 1);

     6) % =     a %= 2    相当于 a = a % 2;

      还可以连续赋值如:a=b=c; 

三,关系运算符

1.条件真假

  在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立就是判断条件的真假。  

   C语言规定:在C语言中,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”

2.关系比较

   关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。

3.条件运算符

     >(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于);

4.优先级

    关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级于后者;

    关系运算符结合方向:从左到右;

    关系运算符小于算数运算符;

四、逻辑运算符

    1)&&(逻辑与)

    格式:条件A && 条件B     

    运算结果:只有当条件A和条件B都成立时,结果才为1,也就是“真”,其余为假;

     运算过程:条件A成立,接着再判断条件B是否成立:如果条件B成立,“条件A && 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”;

     条件A不成立,就不会再去判断条件B是否成立:因为条件A已经不成立了,不管条件B如何,“条件A && 条件B”的结果肯定是0,也就是“假”;

    2)||(逻辑或)

    格式:条件A || 条件B

     运算结果:当条件A或条件B只要有一个成立时,结果就为1,也就是“真”;只有当条件A和条件B都不成立时,结果才为0,也就是“假”。

     运算过程:条件A成立,就不会再去判断条件B是否成立:因为条件A已经成立了,不管条件B如何,“条件A || 条件B”的结果肯定是1,也就是“真”;

     条件A不成立,接着再判断条件B是否成立:如果条件B成立,“条件A || 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”;

     3)!(逻辑非)

     注意的是逻辑与只要1假都为假,逻辑或为只要1真都为真,逻辑非1就为0,0就为1且运算方向自右向左;

五,三目运算符

     格式;int a > b ? a : b

     运算过程:a > b,那么输出a,否则输出b; 

六,sizeof()

    括号里可以是变量、常量、数据类型,作用是输出字节数;

七,自增自减

    格式:a++,++a,b--,--b

    运算:a++即为a = a + 1;

          --b即为b = b - 1;

     注意:a++与++a区别为:a++为先将a的值拷一份,再将a的值加1,然后将拷的值参与运算,++a为将a的值先加八、小结

     在参加运算;当许多运算符在一起的时候,我们就要制定运算的先后顺序;

我们就要判断运算顺序:小括号() > 负号-  >  ! >  算数运算符  >  关系运算符  >  &&  >  ||

久.二进制    

    我们所有的数据在电脑中都是以0或1的方式存储,就是二进制存储,除了二进制,还有八进制和十六进制存储;

    1)二进制

     特点:逢二进一,以0b开头;

     二进制转十进制:  0b10011 = 2^4*1 + 2^3*0 + 2^2*0 + 2^1*1 + 2^0*1 = 19;

    2)八进制    

     特点:逢八进一,以0开头;

       八进制转二进制:  035 = 011 101;

     将八位进制的每一位换成3个二进制;

    3)16进制

     特点:逢十六进一,以0x开;

      二进制转十六进制: 0x9e = 1001 1110;

      将十六位进制每一位换成4个二进制位;

    输出格式:

    带符号的十进制输出       %d

    不带符号的八进制输出     %o

    不带符号的十六进制输出   %x

    不带符号的十进制输出     %u

十.位运算

1. & 按位与

    运算方式:只有对应的两个二进位均为1时,结果位才为1,否则为0。

    二进制中,与1相&就保持原位,与0相&就为0

2. | 按位或

   运算方式: 只要对应的二个二进位有一个为1时,结果位就为1,否则为0。

3. ^ 按位异或

  运算方式: 当对应的二进位相异(不相同)时,结果为1,否则为0。
    相同整数相与结果为0;      所以a^b^a = b

4. ~ 取反

       对二进制的每一位去反,即1变 0,0变1;

5. << 左移

      运算方式:把二进位全部左移n位,高位丢弃低位补0。左移n位其实就是乘以2的n次方

   由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负

6.>> 右移

    运算方式:就是把二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方


      -----------------ASP.Net+Unity开发、.Net培训、期待与您交流!--------------------











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值