您的位置:首页 > 编程语言 > C语言/C++

C语言中类型.运算符.表达式

2016-07-29 06:50 204 查看

类型.运算符.表达式

变量名

1.      名字是由字母和数字组成,第一个字符必须是字母,下划线”_”被认为是字母

2.      大小写字母有区别,变量名用小写,符合常量全部使用大写字母

3.      变量名不要以”_”开头,为了提高可读性,以“字母_字母”为好

数据类型和长度

1.      Char字符型:占用一个字节

2.      Int整型:反映机器中整数类型的自然长度

3.      Float类型:单精度浮点类型

4.      Double类型:双精度浮点类型

5.      Short  int si;

6.      Long  int li;

Short类型通常是16位,long类型通常是32位,int类型可以是16位或者32位

在位数上:Short<int<long

Signed和unsigned,限定任何整型和char类型,unsigned类型的数总是正的或者0

Long  double类型表示高精度浮点数

常量

1.      int类型常量:3344

2.      long类型常量:9876654321L

3.      无符号常量以字母u或者U结尾

4.      浮点数常量:89.89

进制问题

整数类型表示:35--10进制(35),8进制(035),16进制(0x1f),

字符常量

1.      一个字符常量就是一个整数

2.      字符常量也叫字符串字面值,也就是字符序列,”hello”, ””等等;‘x’这是整数,”x”字符

声明变量

所有变量必须先声明后使用,声明变量会规定变量的类型,

Int lw1,lw2,lw3;  <====>int  lw1; int lw2;  int  lw3;

声明变量初始化

int i = 22;

char c=’h’;

如果不是自动变量,则变量只能初始化一次,也可以使用const修饰,表示该变量不可以被修改,const修饰的数组元素也都不可以被修改:

const int  i=33;

const double  d=3.14;

const char  msg[]=’hello’;

运算符

算术运算符

+
-
*
/
%
++
--
整数相除,不能整除会对小数部分进行截取

#include <stdio.h>

int main()

{

   /* 除号运算 */

   int i=10,j=3;

   int res=i/j;

   int res2=i%j;

   printf("%d,----,%d",res,res2);

   return 0;

}

 

关系运算符

==
!=
<=
>=


关系运算符的优先级低于算术运算符

#include <stdio.h>

main()

{

   int a = 20;

   int b = 10;

   int c ;

   if( a == b )

   {

      printf("Line 1 : a 等于 b\n" );

   }

   else

   {

      printf("Line 1 : a 不等于 b\n" );

   }

   if ( a < b )

   {

      printf("Line 2 : a 小于 b\n" );

   }

   else

   {

      printf("Line 2 : a 不小于 b\n" );

   }

   if ( a > b )

   {

      printf("Line 3 : a 大于 b\n" );

   }

   else

   {

      printf("Line 3 : a 不大于 b\n" );

   }

   /* 改变 a 和 b 的值 */

   a = 10;

   b = 20;

   if ( a <= b )

   {

      printf("Line 4 : a 小于或等于 b\n" );

   }

   if ( b >= a )

   {

      printf("Line 5 : b 大于或等于 b\n" );

   }

}

Line 1 : a 不等于 b

Line 2 : a 不小于 b

Line 3 : a 大于 b

Line 4 : a 小于或等于 b

Line 5 : b 大于或等于 b

逻辑运算符

假设A为真,B为假

 

&&
称为逻辑与运算符。如果两个操作数都为真,则条件为真。
(A && B) 为假。
||
称为逻辑或运算符。如果两个操作数中有任意一个非假,则条件为真。
(A || B) 为真。
!
称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。
!(A && B) 为真。
#include <stdio.h>

main()

{

   int a = 5;

   int b = 20;

   int c ;

   if ( a && b )

   {

      printf("Line 1 - 条件为真\n" );

   }

   if ( a || b )

   {

      printf("Line 2 - 条件为真\n" );

   }

   /* 改变 a 和 b 的值 */

   a = 0;

   b = 10;

   if ( a && b )

   {

      printf("Line 3 - 条件为真\n" );

   }

   else

   {

      printf("Line 3 - 条件不为真\n" );

   }

   if ( !(a && b) )

   {

      printf("Line 4 - 条件为真\n" );

   }

}

赋值运算符

=
简单的赋值运算符,把右边操作数的值赋给左边操作数
C = A + B
将把 A + B
的值赋给 C
+=
加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数
C += A
相当于 C = C + A
-=
减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数
C -= A
相当于 C = C - A
*=
乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数
C *= A
相当于 C = C * A
/=
除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数
C /= A
相当于 C = C / A
%=
求模且赋值运算符,求两个操作数的模赋值给左边操作数
C %= A
相当于 C = C % A
<<=
左移且赋值运算符
C <<= 2
等同于 C = C << 2
>>=
右移且赋值运算符
C >>= 2
等同于 C = C >> 2
&=
按位与且赋值运算符
C &= 2
等同于 C = C & 2
^=
按位异或且赋值运算符
C ^= 2
等同于 C = C ^ 2
|=
按位或且赋值运算符
C |= 2
等同于 C = C | 2
杂项运算符

sizeof()
返回变量的大小。
sizeof(a)
将返回 4,其中 a
是整数。
&
返回变量的地址。
&a;
将给出变量的实际地址。
*
指向一个变量。
*a;
将指向一个变量。
? :
条件表达式
如果条件为真 ?
则值为 X :
否则值为 Y

表达式

赋值表达式

a = a+2;  <==>  a+=2;

x* = y+2; <==>  x = x*(y+2);

 

条件表达式

if(a>b);

         c=a;

else

         c=b;

这里<==>  c = (a>b)?a:b;

#include <stdio.h>

int max(int a,int b);

int main()

{

   int a=1,b=2,c;

   c=max(a,b);

   printf("%d",c);

  

   return 0;

}

int max(int a,int b){

         if(a>b)

                   return a;

         else

                   return b;

}

优先级问题

后缀 
() [] -> . ++ - -  
从左到右 
一元 
+ - ! ~ ++ - - (type)* & sizeof 
从右到左 
乘除 
* / % 
从左到右 
加减 
+ - 
从左到右 
移位 
<< >> 
从左到右 
关系 
< <= > >= 
从左到右 
相等 
== != 
从左到右 
位与 AND 

从左到右 
位异或 XOR 

从左到右 
位或 OR 

从左到右 
逻辑与 AND 
&& 
从左到右 
逻辑或 OR 
|| 
从左到右 
条件 
?: 
从右到左 
赋值 
= += -= *= /= %=>>= <<= &= ^= |= 
从右到左 
逗号 

从左到右 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: