您的位置:首页 > 编程语言 > C语言/C++

C语言之数据类型笔记

2018-02-09 19:45 155 查看
掌握char,short,int,long,long long,double ,float 的极限
以及浮点数的精确度,,,
赋值是将二进制存入内存中,以不同数据类型解析得到值不同
char short 字符,无论有无字符,在表达式都会转换为int 或者unsigned int 类型   

long long 类型用来存储手机号码
//两个 %% 表示%
// += -= *= /= %= 高级运算符
// int add(int x,int y); printf("%d",add(5,6) ); 函数起封装作用,数据加工的过程
//为了避免混淆,一般情况下自增或者自减语句,应当单独一行

//num %= 1+a; 等价于num = num %(1+a),赋值运算符从右到左执行
// 5 = 5;错误,常量不可以赋值,赋值号会默认将赋值号右边的数据转换成左边变量类型
// int a = 10, a -= 1.5; a的值为8, 按照等价形式计算,最后进行数据转换

//逗号运算符 ,顺序求值运算符,整个表达式的值为逗号之后表达式的值,按照顺序执行,优先级最低//可以连接多个语句
//printf("%d%d%d",x,y,z); 不用于计算的时候起间隔作用,起连接的作用,运算符方式从左到右

//关系运算符都是从左到右的, 表达式 关系运算符 表达式
//字符串常量可以比较相等或者不等,字符串变量不可以,无论相等的常量多少个引用,都是一个常量,同一个地址

//运算的优先级 !>算术运算符 >关系运算符>&&>|| > 赋值运算符
//逻辑与运算符高于逻辑非运算符 //逻辑运算-->> 短路效应,确定表达式的值不往后面运算

//唯一的一个三目运算符,结合方向从右到左,优先级高于赋值运算符
// y=5.2>=5.6?5:7>8?7:8; y的值为8 ,三目运算符会自动进行数据类型转换

//Windows头文件 Sleep(); 延时函数
#include <stdio.h>
#include <stdbool.h>    //C99支持C语言的bool类型
//bool 表示逻辑成立或者不成立
int main()
{
_Bool b1;
b1 = true;  //真
b1 = false;	//假
printf("%d  %d",b1,sizeof(b1));  //一个字节
getchar();
}

//%f 默认只能输出小数点后6位
//float 类型只能精确到小数点后6位
//double 精确到小数点后15位,超过以后可能会产生误差
//精确度以外可能正确也可能不正确

#include<stdio.h>

int main()
{
printf("char %d字节\n",sizeof(char));
printf("short %d字节\n", sizeof(short));
printf("int %d字节\n", sizeof(int));
printf("float %d字节\n", sizeof(float));
printf("double %d字节\n", sizeof(double));
//%d 的打印范围INT_MIN 到INT_MAX
//%u 范围为 0 到 UINT_MAX
getchar();
}
//不同平台不同编译器,同一个整数数据类型大小可能不一样
//int 16位的情况下是2个字节 32位 4个字节
//long 64位 Linux是8个字节 Windows 32位64位都是8个字节

//如果需要跨平台移植可用下面的数据类型定义

//数据类型可以跨平台移植,字节都一样,只要支持C99的编译器都可以
//typedef signed char        int8_t;
//typedef short              int16_t;
//typedef int                int32_t;
//typedef long long          int64_t;
//typedef unsigned char      uint8_t;
//typedef unsigned short     uint16_t;
//typedef unsigned int       uint32_t;
//typedef unsigned long long uint64_t;
//
//typedef signed char        int_least8_t;
//typedef short              int_least16_t;
//typedef int                int_least32_t;
//typedef long long          int_least64_t;
//typedef unsigned char      uint_least8_t;
//typedef unsigned short     uint_least16_t;
//typedef unsigned int       uint_least32_t;
//typedef unsigned long long uint_least64_t;
//
//typedef signed char        int_fast8_t;
//typedef int                int_fast16_t;
//typedef int                int_fast32_t;
//typedef long long          int_fast64_t;
//typedef unsigned char      uint_fast8_t;
//typedef unsigned int       uint_fast16_t;
//typedef unsigned int       uint_fast32_t;
//typedef unsigned long long uint_fast64_t;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: