C89:论符号

Posted k5bg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C89:论符号相关的知识,希望对你有一定的参考价值。

一.简介

C运算符总共有13种:

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

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

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

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

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

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

7.逗号运算符:,

8.指针运算符:* &

9.求字节运算符:sizeof

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

11.分量运算符:->

12.下标运算符:[]

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

 

二.位运算符

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

(2)异或运算(^)

 

三.浮点数

合法的浮点数有两种表示形式:
    (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];  //[]的优先级高于*,所以这是一个指针数组,并不是一个指针变量指向的数组

 

以上是关于C89:论符号的主要内容,如果未能解决你的问题,请参考以下文章

C89:论IO内存

C89:论常用的字符串函数

C89:论结构体/枚举体/联合体的使用

论项目中静态库符号冲突的几种解决方式

论项目中静态库符号冲突的几种解决方式

矩阵论-符号和基本概念, since 2021-01-17