C语言数据类型(一)
2016-03-01 09:18
751 查看
//TODO:----------整型-----------
//短整型(16位) -32767 ~ 32767
short si = 32767;
//无符号短整型(16位) 0 ~ 65535
unsigned short us = 65535;
printf("short=%hd u short=%u\n",si,us);
//基本整型(32~64位) -2147483622 ~ 2147483622
int i = 2147483622;
//无符号基本整型(32~64位)
unsigned ui = 4294967295;
printf("int=%d u int=%u\n",i,ui);
//长整型(64位系统) -9223372036854775807 ~ 9223372036854775807
//长整型(32位系统) -2147483622 ~ 2147483622
long li64 = 9223372036854775807;
long li32 = 2147483622;
//无符号长整型(64位系统) 0 ~ 18446744073709551615
//无符号长整型(32位系统) 0 ~ 4294967295
unsigned long ul64 = 18446744073709551615;
unsigned long ul32 = 4294967295;
printf("long=%ld u long=%lu\n",li32,ul32);
//长长整型 -9223372036854775807 ~ 9223372036854775807
long long ll = -9223372036854775807;
//无符号长长整型 0 ~ 18446744073709551615
unsigned long long ulli = 18446744073709551615;
printf("long long=%lld u long long=%llu\n",ll,ulli);
//整形高级属性
//声明一个16位整型
int16_t aa = 4400;
printf("aa = %"PRId16"",aa); //PRId16 串宏来自动适配说明符
//可能比long long还大的整型
intmax_t maxi = 2222222222222222222;
uintmax_t umaxi = 111111111111111111;
//TODO:-----------char字符型-----------
//用整数代替字符,标点 ASCII(0~127),国际(0~255)
char c = 'A'; // char c = 65 ASCII码值
char cc = 'ABCD'; //单引号只适用于是字符,标点,数字,输出结果 D
char *ccc = "ABCDaa"; //字符串分配8个字节内存,
printf("ccc=%s\n",ccc);
printf("sizeOf_char*ccc=%zd\r\n",sizeof(ccc));
//转义符 换行\n、空白\t、回车\r、退格\b
//打印 Gramps sez, "a \ is a backslash. "
printf("Gramps sez,\a \"a \\ is a backslash.\t\"");
//TODO:-----------BOOL型-----------
BOOL b = true; // 1
b = false; //0
//TODO:-----------浮点型-----------(附精确位数及取值范围表表)
//C语言规定 float类型只能保证前6位是精确的, 取值划范围 e-37 ~ e+37
// double float 至少精确10以上(看具体系统)
float f = 411.205098;
float ff = 4110.205098;
float fff = 41100.205098;
float ffff = 4.2f;
CGFloat aad = 41100.205098; //OC 的 CGFloat 是定义为double类型
double df = 22222222223.4444444;
long double ldf = 23982348382.12039;
printf("%f %f %f %f\n",f,fff,ffff,aad);
//TODO:---------各种数据类型的字节长度---------%zd %u
printf("sizeOf_int=%zd\r\n",sizeof(int));
printf("sizeOf_uint=%zd\n",sizeof(unsigned int));
printf("sizeOf_long=%zd\n",sizeof(long));
printf("sizeOf_longlong=%zd\n",sizeof(long long));
printf("sizeOf_char=%zd\n",sizeof(char));
printf("sizeOf_uchar=%zd\n",sizeof(unsigned char));
printf("sizeOf_float=%zd\n",sizeof(float));
printf("sizeOf_double=%zd\n",sizeof(double));
printf("sizeOf_longdouble=%zd\n",sizeof(long double));
/**输出
sizeOf_int=4
sizeOf_uint=4
sizeOf_long=8
sizeOf_longlong=8
sizeOf_char=1
sizeOf_uchar=1
sizeOf_float=4
sizeOf_double=8
sizeOf_longdouble=16
*/
(以下图片转自网络)
//短整型(16位) -32767 ~ 32767
short si = 32767;
//无符号短整型(16位) 0 ~ 65535
unsigned short us = 65535;
printf("short=%hd u short=%u\n",si,us);
//基本整型(32~64位) -2147483622 ~ 2147483622
int i = 2147483622;
//无符号基本整型(32~64位)
unsigned ui = 4294967295;
printf("int=%d u int=%u\n",i,ui);
//长整型(64位系统) -9223372036854775807 ~ 9223372036854775807
//长整型(32位系统) -2147483622 ~ 2147483622
long li64 = 9223372036854775807;
long li32 = 2147483622;
//无符号长整型(64位系统) 0 ~ 18446744073709551615
//无符号长整型(32位系统) 0 ~ 4294967295
unsigned long ul64 = 18446744073709551615;
unsigned long ul32 = 4294967295;
printf("long=%ld u long=%lu\n",li32,ul32);
//长长整型 -9223372036854775807 ~ 9223372036854775807
long long ll = -9223372036854775807;
//无符号长长整型 0 ~ 18446744073709551615
unsigned long long ulli = 18446744073709551615;
printf("long long=%lld u long long=%llu\n",ll,ulli);
//整形高级属性
//声明一个16位整型
int16_t aa = 4400;
printf("aa = %"PRId16"",aa); //PRId16 串宏来自动适配说明符
//可能比long long还大的整型
intmax_t maxi = 2222222222222222222;
uintmax_t umaxi = 111111111111111111;
//TODO:-----------char字符型-----------
//用整数代替字符,标点 ASCII(0~127),国际(0~255)
char c = 'A'; // char c = 65 ASCII码值
char cc = 'ABCD'; //单引号只适用于是字符,标点,数字,输出结果 D
char *ccc = "ABCDaa"; //字符串分配8个字节内存,
printf("ccc=%s\n",ccc);
printf("sizeOf_char*ccc=%zd\r\n",sizeof(ccc));
//转义符 换行\n、空白\t、回车\r、退格\b
//打印 Gramps sez, "a \ is a backslash. "
printf("Gramps sez,\a \"a \\ is a backslash.\t\"");
//TODO:-----------BOOL型-----------
BOOL b = true; // 1
b = false; //0
//TODO:-----------浮点型-----------(附精确位数及取值范围表表)
//C语言规定 float类型只能保证前6位是精确的, 取值划范围 e-37 ~ e+37
// double float 至少精确10以上(看具体系统)
float f = 411.205098;
float ff = 4110.205098;
float fff = 41100.205098;
float ffff = 4.2f;
CGFloat aad = 41100.205098; //OC 的 CGFloat 是定义为double类型
double df = 22222222223.4444444;
long double ldf = 23982348382.12039;
printf("%f %f %f %f\n",f,fff,ffff,aad);
//TODO:---------各种数据类型的字节长度---------%zd %u
printf("sizeOf_int=%zd\r\n",sizeof(int));
printf("sizeOf_uint=%zd\n",sizeof(unsigned int));
printf("sizeOf_long=%zd\n",sizeof(long));
printf("sizeOf_longlong=%zd\n",sizeof(long long));
printf("sizeOf_char=%zd\n",sizeof(char));
printf("sizeOf_uchar=%zd\n",sizeof(unsigned char));
printf("sizeOf_float=%zd\n",sizeof(float));
printf("sizeOf_double=%zd\n",sizeof(double));
printf("sizeOf_longdouble=%zd\n",sizeof(long double));
/**输出
sizeOf_int=4
sizeOf_uint=4
sizeOf_long=8
sizeOf_longlong=8
sizeOf_char=1
sizeOf_uchar=1
sizeOf_float=4
sizeOf_double=8
sizeOf_longdouble=16
*/
(以下图片转自网络)
相关文章推荐
- 2015年第六届蓝桥杯C/C++程序设计本科B组省赛 奖券数目(结果填空)
- c语言中,关于指针变量前的*有两种表现形式:
- c++第1次上机实验-2
- 理工科应该的知道的C/C++数学计算库(转)
- C++中new与malloc的10点区别
- C++ 语言 面经
- c语言小知识点
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 7六角填数
- C语言中的头文件可以自己写吗?
- c++中的小堆栈
- Java 和 c++的区别 (做题过程中整理)
- C++ DirectX 游戏开发初级视频教程 22 资源下载链接
- c++ 两个字符串加减得到相差秒数
- c++时间间隔运算
- c++类成员函数重载常量与非常量版本时避免代码重复的一种方法
- 字符格式的数字转化为整型数字
- C语言关于利用sscanf实现字符串相加减
- C++的可移植性和跨平台开发
- 《编写高质量代码:改善C++程序的150个建议》读书笔记3
- C++ 引用 参数传递 机制