### C的基本数据类型
* java基本数据类型 及其所占的字节数
- boolean 1
- byte 1
- char 2
- short 2
- int 4
- long 8
- float 4
- double 8
* C基本数据类型及其所占的字节数
* char 1个字节
* short 2
* int 4
* long 4
* float 4
* double 8
char, int, float, double, long, short, signed, unsigned, void
> **sizeof()函数 可以获得变量或者类型所占的字节数,C99规定long的长度只要不比int短就行,long在不同的编译器下长度不一样,但是都是符合C99标准的;longlong占8个字节,但是它不是基本数据类型**
* signed 有符号数 最高位是符号位 可以表示负数 但是表示的最大值相对要小 比如char 最大值是127
* unsigned 无符号数 最高位是数值位 不可以表示负数 表示的最大值相对要大
* signed unsigned 只能用来修饰整型变量 char short int long(默认有符号)
* char实际上也是整型变量,char字符输出时查询了一下ASCII码表
* C没有 boolean byte 这2种类型
* C用0和非0表示false true
### 代码
~~~
#include<stdio.h>
#include<stdlib.h>
/**
char, int, float, double, long, short, signed, unsigned, void
signed unsigned 有符号 无符号 只能用来修饰整形变量 char int short long 默认有符号
sizeof(int)
*/
main(){
printf("char占%d个字节\n", sizeof(char));//java里面用"+",C里面用占位符%d
printf("int占%d个字节\n", sizeof(int));
printf("short占%d个字节\n", sizeof(short));
printf("float占%d个字节\n", sizeof(float));
printf("long占%d个字节\n", sizeof(long));
printf("double占%d个字节\n", sizeof(double));
unsigned char c = 128;无符号数(0-255)有符号数(-128---> 127)
printf("c = %d\n",c);
system("pause");
}
~~~
![](http://i.imgur.com/mhAQaoW.png)
### 基本数据类型
C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。如图所示:
![](http://img.mukewang.com/552b3d930001acdd04260268.jpg)
最简单也是最常用的整型、实型与字符型。
![](http://img.mukewang.com/547fd0af0001b55b06300091.jpg)
整型数据是指不带小数的数字。
![](http://img.mukewang.com/55adb2e70001360607410143.jpg)
**注:int、short int、long int是根据编译环境的不同,所取范围不同。而其中short int和long int至少是表中所写范围,但是int在表中是以16位编译环境写的取值范围。另外 c语言int的取值范围在于他占用的字节数 ,不同的编译器,规定是不一样。ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。但是在VC里,一个int是占4个字节的。**
浮点数据是指带小数的数字。生活中有很多信息适合使用浮点型数据来表示,比如:人的体重(单位:公斤)、商品价格、圆周率等等。因为精度的不同又分为3种:
![](http://img.mukewang.com/547fd1250001132307420082.jpg)
> 注:C语言中不存在字符串变量,字符串只能存在字符数组中。
- 前言
- JNI基础知识
- C语言知识点总结
- ①基本语法
- ②数据类型
- 枚举类型
- 自定义类型(类型定义)
- ③格式化输入输出
- printf函数
- scanf函数
- 编程规范
- ④变量和常量
- 局部变量和外部变量
- ⑤类型转换
- ⑥运算符
- ⑦结构语句
- 1、分支结构(选择语句)
- 2、循环结构
- 退出循环
- break语句
- continue语句
- goto语句
- ⑧函数
- 函数的定义和调用
- 参数
- 函数的返回值
- 递归函数
- 零起点学通C语言摘要
- 内部函数和外部函数
- 变量存储类别
- ⑨数组
- 指针
- 结构体
- 联合体(共用体)
- 预处理器
- 预处理器的工作原理
- 预处理指令
- 宏定义
- 简单的宏
- 带参数的宏
- 预定义宏
- 文件包含
- 条件编译
- 内存中的数据
- C语言读文件和写文件
- JNI知识点总结
- 前情回顾
- JNI规范
- jni开发
- jni开发中常见的错误
- JNI实战演练
- C++(CPP)在Android开发中的应用
- 掘金网友总结的音视频开发知识
- 音视频学习一、C 语言入门
- 1.程序结构
- 2. 基本语法
- 3. 数据类型
- 4. 变量
- 5. 常量
- 6. 存储类型关键字
- 7. 运算符
- 8. 判断
- 9. 循环
- 10. 函数
- 11. 作用域规则
- 12. 数组
- 13. 枚举
- 14. 指针
- 15. 函数指针与回调函数
- 16. 字符串
- 17. 结构体
- 18. 共用体
- 19. typedef
- 20. 输入 & 输出
- 21.文件读写
- 22. 预处理器
- 23.头文件
- 24. 强制类型转换
- 25. 错误处理
- 26. 递归
- 27. 可变参数
- 28. 内存管理
- 29. 命令行参数
- 总结
- 音视频学习二 、C++ 语言入门
- 1. 基本语法
- 2. C++ 关键字
- 3. 数据类型
- 4. 变量类型
- 5. 变量作用域
- 6. 常量
- 7. 修饰符类型
- 8. 存储类
- 9. 运算符
- 10. 循环
- 11. 判断
- 12. 函数
- 13. 数学运算
- 14. 数组
- 15. 字符串
- 16. 指针
- 17. 引用
- 18. 日期 & 时间
- 19. 输入输出
- 20. 数据结构
- 21. 类 & 对象
- 22. 继承
- 23. 重载运算符和重载函数
- 24. 多态
- 25. 数据封装
- 26. 接口(抽象类)
- 27. 文件和流
- 28. 异常处理
- 29. 动态内存
- 30. 命名空间
- 31. 预处理器
- 32. 多线程
- 总结
- 音视频学习 (三) JNI 从入门到掌握
- 音视频学习 (四) 交叉编译动态库、静态库的入门学习
- 音视频学习 (五) Shell 脚本入门
- 音视频学习 (六) 一键编译 32/64 位 FFmpeg 4.2.2
- 音视频学习 (七) 掌握音频基础知识并使用 AudioTrack、OpenSL ES 渲染 PCM 数据
- 音视频学习 (八) 掌握视频基础知识并使用 OpenGL ES 2.0 渲染 YUV 数据
- 音视频学习 (九) 从 0 ~ 1 开发一款 Android 端播放器(支持多协议网络拉流/本地文件)
- 音视频学习 (十) 基于 Nginx 搭建(rtmp、http)直播服务器
- 音视频学习 (十一) Android 端实现 rtmp 推流
- 音视频学习 (十二) 基于 FFmpeg + OpenSLES 实现音频万能播放器
- 音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)