乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
C 0.1 数据类型
2018-06-17 08:23:04
105
0
0
admin
> 基本类型:整型,浮点数,char。。。;枚举类型 #基本类型 ``` 数值类型--| 整型 ----| short | | int | | long | | 浮点数 --| float | double 字符类型char ``` * 类型限定符signed/unsigned表示是否用第一个位代表符号。默认都是signed > signed char 支持 -128 ~ 127 unsigned char 支持 0 ~ 255 * 类型限定符const 表示该变量不能改变 * 字符串是字符的数组 char[] > 双引号代表字符串,单引号代表字符 字符串的最后一位是‘\0’表示结束: "x" = ['x','\0'] * 可以用 **类型名 变量名**的方式强行改变变量的数据类型 ```c char a = 1; (int) a ``` * 当把范围大的类型改成范围小的类型时,可能丢失数据;牵扯到signed/unsigned 转换且转换双方占用位数相同的时候可能导致错误* ```c #include <stdio.h> main() { char a = -1; printf("%d\n",a); printf("%d\n",(unsigned char) a); } ``` 结果 ``` -1 255 ``` * int 转float 类型的时候,可能会被舍入(一般是向偶数舍入,十进制上看类似于五舍六入) > 举个例子:32位机器上,float 和 int 都有32个位,他们最高位都表示正负,但是float 还需要8个位来表示阶码,而int 剩下的位全部表示数值,所以虽然float可以表达数的范围大于int,但是在某些情况下表达的数值没有int那么精确。 * c语言没有string, 用char的数组或者指针来达到string 的效果 ```c char a[] = "abc"; //char a[] = {'a','b','c','\0'}; char *b; b = "qwe"; ``` *** #枚举类型 这是一个常量整型值得列表 以下是常用的: ```c enum boolean { NO, YES }; // 每个名字的值如果不指定,则从0开始,第二个是1,第三个是2,这里NO 是0,YES是1 // 如果指定值,那么未指定的名字的值则依照最后一个指定值向后递增 enum escapes { BELL = '\a', BACKSPACE = '\b', TAB = '\t', NEWLINE = '\n', VTAB = '\v', RETURN = '\r' }; ```
上一篇:
C 0.02 预处理
下一篇:
C 0.11 计算溢出
文档导航