c语言核心整理之数据类型,运算符,表达式和语句

1,数据类型,运算符,表达式和语句
(1)基本数据类型:整型、浮点型、指针和聚合类型(数组、结构体)
1)整型:字符、短整型、整型、长整型(都分为有符号和无符号两种)
长整型至少应该和整型一样长,而整型至少应该和短整型一样长。(short int至少16位,long int至少32位,一般3个整型值都被设为32位)
头文件limits.h说明了各种不同的整数类型的特点:变量范围的限制
变量的最小范围:
char:【0到127】
signed char:【-127到127】
unsigned char:【0至255】
short int:【-32767到32767】
unsigned short int:【0到65535】
int:【-32767到32767】
unsigned int:【0到65535】
long int:【-2147483647到2147483647】
unsigned long int:【0到4294967295】
字面值(字面值常量):一个实体,指定了自身的值,并且不允许发生改变
命名常量:声明为const的变量[const定义变量时,打印都为原数,若利用指针修改数据,只有打印用指针形式表示的变量,变量值才会发生改变。]
宽字符常量(wchar_t)多字节字符常量的前面有一个L   L'x'
eg:把一个字符转换为一个二进制值
value = value - 48;
value = value - \60;
value = value - '0';
枚举:枚举类型就是指它的值为符号常量而不是字面值的类型(enum),这种类型的变量实际上以整型的方式存储,这些符号名的实际值都是整型值(这里的整型值可以改变,未显式指定时则比前面一个符号名的值大1)。
2)浮点型:float(单精度),double(双精度),long double(扩展精度)
头文件float.h表示能存储的最大值
浮点数字面值在缺省情况下都是double类型的,加L或l为long double型,加F或f为float型
3)指针:变量的值存储于计算机的内存中,每个变量都占据一个特定的位置。每个内存位置都由地址唯一确定并引用,指针是地址的另一个名字。
指针常量
字符串常量:一串以NUL字节结尾的零个或多个字符。(\0)/指针/数组
(2)运算符
1)算术操作符:+ - * / %
2)移位操作符:左移<< 右移>>
从左边移入新位时,可以选择两种方案;
一,逻辑移位:左边移入的位用0填充
二,算术移位:左边移入的位由原值的符号位决定,当符号位为1时,则填充位为1,符号位为0时,填充为0.
算术左移与逻辑左移的结果都相同,只在右移时不同(操作数为负数)。
无符号值得移位操作都是逻辑移位,有符号数根据编译器决定。
3)位操作符:& | ^(异或)
4)赋值运算:=(复合赋值符)
5)单目操作符:!(逻辑反操作) ~(按位取反) ++ -- + -(产生操作数的负值) & * sizeof (类型)[强制类型转换]
关于sizeof:sizeof(a=b+1)并没有向a赋任何值
6)关系操作符:< > <= >= != == [笔
7)逻辑操作符:&& ||[短路求值]
8)条件操作符:?:
9)逗号操作符:逗号表达式从左至右依次执行,但结果为最后一个表达式的值。
10)下标引用、函数调用和结构成员
.和->的使用:.   左边结构体变量
  ->  左边结构体指针
(3)表达式
1)隐式类型转换:整型提升
2)算术转换:即不同类型之间的转换
3)操作符的属性
术语lexp表示左值表达式,rexp表示右值表达式。【左值代表一个位置,右值表示一个值,故,在使用右值的地方可以使用左值,但使用左值的地方不能使用右值】
4)优先级和求值的顺序
()聚组  ()函数调用  []  .  ->  ++后缀自增  --后缀自减  !  ~  +单目,表示正值  -单目,表示负值  ++前缀自增  --前缀自减  *间接访问
&取地址  sizeof  (类型)  *  /  %  +  -  <<  >>  >  >=  <  <=  ==  !=  &位与  ^位异或  |  &&  ||  ?:  =  +=  -=  *=  /=  %=  <<=
>>=  &=  ^=  |=  ,      
(4)语句
1)空语句:只有;
2)表达式语句:表达式加;
3)代码块:位于一对花括号之内的可选的声明和语句列表。
4)if语句:各种类型的if 
5)while语句:while循环:循环的测试在循环体开始之前进行,一旦测试结果为假,则不执行。
break语句:用于永久终止循环,在执行完该语句之后,执行流下一条执行的语句就是循环正常结束后应该执行的语句。
continue语句:用于永久终止当前的这次循环,在执行完该语句之后,执行流接下来就是重新测试表达式的值,决定是否继续执行循环。
6)for语句:for(初始化部分;条件部分;调整部分)
7)do语句:循环体至少执行一次。do…………while…………
8)switch语句:break语句、default子句

9)goto语句:goto语句需要加标签,一般不使用goto语句,但它可用于跳出多层嵌套的循环,较方便。


若有错误,欢迎指正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值