C89:论符号

一.简介

C运算符总共有13种:

1.算术运算符:* - + /

2.关系运算符:> < == != >= <=

3.逻辑运算符:! && ||

4.位运算符:<< >> ~ | ^ &

5.赋值运算符:= 及扩展赋值运算符

6.条件运算符:?:(C语言中唯一的三目/三元运算符)

7.逗号运算符:,

8.指针运算符:* &

9.求字节运算符:sizeof

10.强制类型转换运算符:(类型)

11.分量运算符:->

12.下标运算符:[]

13.其他:如函数调用运算符

 

二.算术运算符

 

三.关系运算符

 

四.逻辑运算符

 

 

五.位运算符

(1)左移(<<)右移运算(>>)

(2)异或运算(^)

 

(1) & 位操作符

int fun(int value)
{
  int cnt = 0;
  while(value)
  {
    cnt++;
    value = value & (value - 1);
  }      
  return cnt;
}

void main(void)
{
  printf("%d", fun(65535));
}

 

 

三.浮点数

合法的浮点数有两种表示形式:
    (1) 十进制小数形式。他有数字和小数点组成,必须有小数点。例如(123.)(123.0)(.123)。
    (2) 指数形式。如123e3。字母e(或E)之前必须有数字,e后面的指数必须为整数。

 

规范化的指数形式里面,小数点前面有且只有一位非零的数字。如1.2345e8

 

四.变量

1.16位编译器

char :1个字节

char*(即指针变量): 2个字节

 short int : 2个字节

int: 2个字节

unsigned int : 2个字节

float: 4个字节

long: 4个字节

unsigned long: 4个字节

double: 8个字节

long long: 8个字节

 

2.32位编译器

char :1个字节

char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

long: 4个字节

unsigned long: 4个字节

double: 8个字节

long long: 8个字节

 

3.64位编译器

char :1个字节

char*(即指针变量): 8个字节

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

long: 8个字节

long long: 8个字节

double: 8个字节

unsigned long: 8个字节

 

五.%(求余)

%(求余)要求两边都是整型

 

六.<<(左移) >>(右移)

位运算中操作符左移一位表示乘以2,操作符右移一位表示除以2

 

七.||(逻辑与)

int i=0,a=1,b=2,c=3;
i=++a||++b||++c;
 
//i=1
//a=2
//b=2
//c=3

 

八.操作符Sizeof()

1.结构体

16位机子的编译器无内存对齐

 

2.数组

char s[]="12345";
cout<<sizeof(s)<<endl;  //输出6
 
char s[100];
cout<<sizeof(s)<<endl;    //输出4

 

3.指针

char* s="12345";
cout<<sizeof(s)<<endl; //输出4
 
void* p=malloc(100);
cout<<sizeof(a)<<endl;  //输出4

 

4.变量

 

九.[]和*

char* a[10];  //[]的优先级高于*,所以这是一个指针数组,并不是一个指针变量指向的数组

 

posted @ 2019-07-01 10:06  言午丶  阅读(322)  评论(0编辑  收藏  举报