博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
02.C(数据类型与运算符)
阅读量:5889 次
发布时间:2019-06-19

本文共 2765 字,大约阅读时间需要 9 分钟。

(创建于2017/8/14)

1.float型变量a只能接受7位有效数字,因此最后三位是不准确的,但double型数字是可以全部接受10位有效数字的

2.常用转义字符:
\0 空字符 0
\t 水平制表,跳到下一个Tab位置 9
\r 回车,将当前位置移到本行的开头 13
\n 换行,将当前位置移到下一行的开头 10
' 双撇号 34),"" 单撇号 39
3.逗号运算符(逗号运算的结合性是从左至右,完毕之后整个表达式的值是最后一个表达式的值。)

#include
int main(){ int m=1,n=2; int a; a=(m+n,m-n); printf("a的值为%d,表达式的值为%d\n",a,a=(m+n,m-n)); a=m+n,m-n; printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n)); a=m+n,m-n+a; printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n+a)); printf(""); return 0; }运行结果a的值为-1,表达式的值为-1a的值为3,表达式的值为-1a的值为3,表达式的值为2

4.强制类型转换

对变量进行强制类型转换时,只能得到一个中间值,并不改变该变量原有的类型。
5.自增运算和自减运算(++/-- 同java)
自增运算符和自减运算符是c语言特有的单目运算符,他们只能和一个单独的变量组成表达式。
x++和++x的相同之处是:单独作为一个表达式语句被使用时,无论执行了哪一种表达式,执行结束后x的值都加1.
x++和++x的不同之处是:当他们出现在其他表达式中时,也就是说作为其他表达式的一部分时,两个表达式的结果是不一样的。++x的值等于原值+1,x++的值等于x的原值。

6.位运算

#include
// 运行结果如下:(分别为取反,与,或,异或,右移与左移)int main(){ unsigned int A=0xb3,B=0x9a; printf("A=%x\n", A); printf("B=%x\n", B); printf("~A=%x\n",~A); printf("A&B=%x\n",A&B); printf("A|B=%x\n",A|B); printf("A^B=%x\n",A^B); A=27;B=28; printf("A<<1=%u\n",A<<1); printf("A>>1=%u\n",B>>1); return 0; }运行结果:A=b3B=9a~A=ffffff4cA&B=92A|B=bbA^B=29A<<1=54A>>1=14

数据类型

7.有符号数和无符号数的区别

有符号,最高位是符号位,1代表负数,0代表正数无符号,最高位不是符号位,是数的一部分,无符号不可能是负数

8.char数据类型范围

char 占一个字节有符号:-128~127无符号:0~255

9.数值越界

char a = 127 + 2;打印a的值为-127,从补码的角度分析127+2 = 129 ,129转换为2进制是10000001,计算机是以补码存储数据的,所以这个2进制数是129的补码补码:1000 0001反码:1111  1110原码:1111  1111(最高位是符号为) = -127unsigned char b = 255 + 2;257转换位二进制0001 0000 0001因为是无符号数,所以只取后8位,得到的是1

10.sizeof

sizeof不是函数,只是一个运算符,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位位字节sizeof的返回值位size_tsize_t类型在32位操作系统下是unsigned int,是一个无符号整数

11.整型变量输入输出

short  短整型 占2个字节int     整型  占4个字节long  长整形   windows 占4个字节 Linux占4个字节(32位),8个字节(64位)long long 8个字节整型数据在内存中占用的字节数与所选的操作系统有关,虽然C语言标准中没有明确规定整型数据的长度,但是long类型整数的长度不能短于int,short类型的长度不能长于int当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转换,但是当一个大的数据类型赋值给一个小的数据类型,可能会丢失高位打印格式                 含义%d                      输出一个有符号的十进制int类型%o(字母o)                输出8进制int类型%x                      输出16进制int类型,字母小写%X                      输出16进制int类型,字母大写%u                      输出10进制无符号数

12.字符型

字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的ADCII编码放到变量的存储单元中,char的本质就是一个字节大小的整型,内存中没有字符,只有数字,一个数字对应一个字符,这种规则就是ASCII,使用字符或数字给字符变量赋值是一样的char ch = 'a'    char ch = 97 等价小写字母比大小字母的字节大32小写转大写 'a'-32大写转小写 'A'+32

13.转义字符

char a = 'abc'  //原则上''内部只有一个字符,转移字符除外,这种写法不合适,会有警报转义字符,由反斜杠组成的多个字符"\"

14.浮点型:float double

实型变量也称为浮点型变量,存储小数数值单精度浮点数float: 占用空间4个字节,有效存储7位双精度浮点型:占用8个字节,有效存储15~16默认是double,加上f结尾是float,3.14是double类型,3.14f是float

15.类型限定符

extern : 声明一个变量,extern生命的变量没有建立存储空间 extern int aconst : 定义一个常量,值不能修改volatile :放置编译器优化代码register : 定义寄存器变量,提高效率,register是建议型的指令,而不是命令型的指令,如果CPU由空闲寄存器,那么register就生效,如果没有空闲寄存器,就无效

运算符

转载地址:http://ywwsx.baihongyu.com/

你可能感兴趣的文章
ArcEngine开发遇到的问题(转)
查看>>
js时间戳与日期格式的相互转换
查看>>
关于RF在实践WEB UI自动化测试时,碰到的问题
查看>>
解决Maven项目中jar包依赖冲突问题
查看>>
Pairing Heap模板
查看>>
2016的ChinaJoy沦为ChinaVR?
查看>>
Unity Shaders and Effets Cookbook
查看>>
cairo-1.14.6 static compiler msys mingw32
查看>>
Mac osx 下让android 模拟器横屏
查看>>
SQL创建触发器
查看>>
喜爱看剑雨,数据流的本人对各主角…
查看>>
luogu P1387 最大正方形
查看>>
Android图片圆角效果
查看>>
MSSQL跨服务器数据库查询
查看>>
WeChat Official Account Admin Platform API Introduction
查看>>
C语言写单链表的创建、释放、追加(即总是在最后的位置增加节点)
查看>>
poj1635
查看>>
C# LINQ详解(一)
查看>>
视频直播点播nginx-rtmp开发手册中文版
查看>>
iphone 添加CFNetwork.framework时,报错 socket
查看>>