畅享博客 > 小白学习大数据 > java的学习 > [分享]c语言的数据类型,运算符,存储类型
2019/10/5 9:33:14

[分享]c语言的数据类型,运算符,存储类型

【1词法符号】

1. 关键字:32个

1) 存储类型:决定(设备)变量的存储位置

auto(自动型).extern(外部引用) static(静态型) register(寄存器类型)

2) 数据类型:决定设备在对应位置所占的空间大小

char (字符型) int(整型) short(短整型) long(长整型) float(单精度浮点类型) double(双精度浮点类型) signed(有符号)

unsigned(无符号)

3)控制语句:if ,else ,switch , case ,break ,default ,for , while ,do

Goto(跳转) ,continue ,return

4)构造函数类型:struct(结构体) union(共用体) enum(枚举)

5)杂项:const(常量化) sizeof(计算数据所占空间大小) typedef(重定义) ,void(空,修饰指针,不能修饰变量;作为函数的返回值;作为函数的参数 ) volatile(防止被编译器优化)

2.标识符:用于定义宏名,变量名,函数名和自定义的类型名

1)标识符由一个或者多个字母,数字,或者下划线组成

2)标识符的第一个字符必须是字母 或者下划线

3)不能与任何关键字相同

变量:在程序运行期间值可以发生变化的量

格式:存储类型 数据类型 变量化

Int a =4;

没有被初始化的的全局变量存储在.bss段 ,存储在该段的初值都为0

局部变量存储在栈区,由系统自动分配并释放

Int a=10 //定义变量的时候并初始化

2. 算数运算:

1):+ -_*/ % ++ --

Int a=5/2; =2

除号:向下取整

%:运算符左右两侧只能是整数

#include

Int main()

{

Int a=5;

Printf(“%d\n”,a++); 结果是5(先取值,再自加)

Printf(“%d\n”,++a); 结果是7 (先自加,再取值)

return 0;

}

答案: 5 ,7

2)关系运算 > >= < <= == !=

3) 赋值运算:+= -= *= /= &= =

sum+=i;  sum=sum+I;

4) 逻辑运算:&&(逻辑与) ||(逻辑或) !(逻辑非)

&&:全真为真 ,一假则假

//串联:有一假,则后面的表达式将不被执行

Int a =3 ,b=4 ,b=4;

Int c =a>b && b++;

结果:c=0 ,b=4;

||:一真则真,全假则假

//并联:有一真,则后面的表达式将不被执行

!:取反

遵循截断法则

【1】

1.存储类型:决定变量的存储位置

1)

auto int aint a 两边等价

auto修饰的局部变量,不初始化的时候,初值为随机值(修饰全局变量不初始化的时候初值为0)

auto只能修饰局部变量

2)

extern外部引用

外部引用变量,编译时需要多个文件同时编译

3)

Static :静态型

只初始化一次

修饰的变量如果没有初始化,初始值为0

存放在静态区

限制作用域,修饰局部变量时限制再在局部,修饰全局变量,限制在本文件中

只初始化一次,修饰的变量,下面使用的值,时上面运算后的值

1.未初始化的全局变量和静态变量放在.BSS段,已初始化但初始化的值为0的全局变量和静态变量也放在.bss段

2.已初始化为0的全局变量和静态变量放在.bss段

3.data存储已初始化的全局变量和静态变量,但是初值不是0

【3常量】

整型常量

浮点常量

指数常量

字符常量:单引号引起来的一个字符

‘a’ ‘b’

字符串常量:双引号引起来的一串字符

“hello” 6个

字符串常量始终以‘\0’结尾,‘\0’是系统自动补,不需要程序员写,程序员要考虑‘\0’必须要有空间去存放

标识常量:符号常量

格式:#define 宏名 标识符

例子:

#define M 3

#define N M+M

Printf(“%d\n”,N*3+1);

展开 M+M*3+1=13

单纯的替换(不能加括号)

【4】格式输入输出语句:

1.printf:

int printf(const_char *format, ...);

功能:按照指定的格式向终端输出

参数:多参

format:向终端输出的内容

%d -- int 整型

%ld -- long 长整型

%c --_char 字符型

%e -- 指数形式

%f -- float

%lf -- double

%s -- 字符串

%p -- 地址

%0m.nf

0:在左侧补0

m:指定的位宽,

m大于实际位宽时,按m输出

m小于实际位宽时,按原样输出

+:输出符号

-:左对齐,默认右对齐

返回值:输出字符的个数



查阅更多相关主题的帖子: c语言

评论

您还未登录,不能对文章发表评论!请先登录