C语言中数据类型及长度
2013-08-12 22:51
337 查看
C语言中的变量在使用前必须声明,而声明需要指定类型
这个类型决定了程序向系统申请多少的内存空间
各种类型各部相同
下边是几种常用的数据类型:
char:字符类型
int:整形
float:浮点型
double:双精度浮点型
还有写限定字符long和short 使用方法如下:
long int bbb; //长整形
short int bbb; //短整形
shuort类型长度通常为16位,int的长度可以是16位,也可以是32位这个具体有编译器而定,如果是32位的编译器,则int类型为16如果编译器是64位,则int的长度为32
long类型的int长度一定比int长,不管是shuort和int类型最短都是16位,shourt的长度不大于int,而int的长度不大于long int。
限定符signed和unsigned:
signed char aaa; //带符号的字符
unsigned char aaa; //不带符号的字符
unsigned不带符号的字符类型的数,总是正整数,如果char类型的变量大小为8位,那么signed的值为-(2的8次方)/2到 (2的8次方)/2-1之间,也就是-128~127之间,如果是unsigned的话长度是2的8次方-1的长度, 此处以位为单位。
这些限定的类型长度的定义都在<limits.h> 和<float.h>中能找到,具体查看方法:
[root@CWG 桌面]# man limits.h
[root@CWG 桌面]# man float.h
下边是头文件中定义的值
一下是打印各个字符常量所对应的字符长度
用sizeo函数计算字符类型的长度(此处暂时作为了解)
printf("unsigned char is %d bit\n\r", sizeof(uint8)*8);
printf("signed char is %d bit\n\r", sizeof(int8)*8);
printf("unsigned short is %d bit\n\r", sizeof(uint16)*8);
printf("signed short is %d bit\n\r", sizeof(int16)*8);
printf("unsigned int is %d bit\n\r", sizeof(uint32)*8);
printf("signed int is %d bit\n\r", sizeof(int32)*8);
printf("float fp32 is %d bit\n\r", sizeof(fp32)*8);
printf("double fp64 is %d bit\n\r", sizeof(fp64)*8);
printf("unsigned long is %d bit\n\r", sizeof(ulong)*8);
源代码如下:
[[root@CWG hc]# cat cllx.c
#include <stdio.h>
#include <limits.h>
#include <float.h>
main()
{
printf("以下是取值范围X~Y:\n");
printf("char range of %d ~ %d\n", CHAR_MAX, CHAR_MIN);
printf("singned char range of %d ~ %d\n", SCHAR_MAX, SCHAR_MIN);
printf("unsingned char range of 0 ~ %d\n", UCHAR_MAX);
printf("shuort int range of %d ~ %d\n", SHRT_MAX, SHRT_MIN);
printf("unsigned short int range of 0 ~ %d\n", USHRT_MAX);
printf("int range of %d ~ %d\n", INT_MAX, INT_MIN);
printf("unsigned int range of 0 ~ %d\n", UINT_MAX);
printf("long int range of %d ~ %d\n", LONG_MAX, LONG_MIN);
printf("unsigned long int range of 0 ~ %d\n", ULONG_MAX);
char uint8 = 0;
signed char int8 = 0;
unsigned short uint16 = 0;
signed short int16 = 0;
unsigned int uint32 = 0;
signed int int32 = 0;
float fp32 = 0;
double fp64 = 0;
unsigned long ulong = 0;
printf("以下是类型所对应的长度:\n");
printf("char bit:%d\n", CHAR_BIT);
printf("unsigned char is %d bit\n\r", sizeof(uint8)*8);
printf("signed char is %d bit\n\r", sizeof(int8)*8);
printf("unsigned short is %d bit\n\r", sizeof(uint16)*8);
printf("signed short is %d bit\n\r", sizeof(int16)*8);
printf("unsigned int is %d bit\n\r", sizeof(uint32)*8);
printf("signed int is %d bit\n\r", sizeof(int32)*8);
printf("float fp32 is %d bit\n\r", sizeof(fp32)*8);
printf("double fp64 is %d bit\n\r", sizeof(fp64)*8);
printf("unsigned long is %d bit\n\r", sizeof(ulong)*8);
}
运行结果如下:
[root@CWG hc]# cc cllx.c -o cllx
[root@CWG hc]# ./cllx
以下是取值范围X~Y:
char range of 127 ~ -128
singned char range of 127 ~ -128
unsingned char range of 0 ~ 255
shuort int range of 32767 ~ -32768
unsigned short int range of 0 ~ 65535
int range of 2147483647 ~ -2147483648
unsigned int range of 0 ~ -1
long int range of -1 ~ 0
unsigned long int range of 0 ~ -1
以下是类型所对应的长度:
char bit:8
unsigned char is 8 bit
signed char is 8 bit
unsigned short is 16 bit
signed short is 16 bit
unsigned int is 32 bit
signed int is 32 bit
float fp32 is 32 bit
double fp64 is 64 bit
unsigned long is 64 bit
本文要学习的就是以上小程序打印出来的东西
##################################
迷途小运维学习C程序语言笔记
作者:john
转载请注明出处
这个类型决定了程序向系统申请多少的内存空间
各种类型各部相同
下边是几种常用的数据类型:
char:字符类型
int:整形
float:浮点型
double:双精度浮点型
还有写限定字符long和short 使用方法如下:
long int bbb; //长整形
short int bbb; //短整形
shuort类型长度通常为16位,int的长度可以是16位,也可以是32位这个具体有编译器而定,如果是32位的编译器,则int类型为16如果编译器是64位,则int的长度为32
long类型的int长度一定比int长,不管是shuort和int类型最短都是16位,shourt的长度不大于int,而int的长度不大于long int。
限定符signed和unsigned:
signed char aaa; //带符号的字符
unsigned char aaa; //不带符号的字符
unsigned不带符号的字符类型的数,总是正整数,如果char类型的变量大小为8位,那么signed的值为-(2的8次方)/2到 (2的8次方)/2-1之间,也就是-128~127之间,如果是unsigned的话长度是2的8次方-1的长度, 此处以位为单位。
这些限定的类型长度的定义都在<limits.h> 和<float.h>中能找到,具体查看方法:
[root@CWG 桌面]# man limits.h
[root@CWG 桌面]# man float.h
下边是头文件中定义的值
符号常量 | 表示 |
CHAR_BIT | char 的位数 |
CHAR_MAX | char 的最大值 |
CHAR_MIN | char 的最小值 |
SCHAR_MAX | signed char 的最大值 |
SCHAR_MIN | signed char 的最小值 |
UCHAR_MAX | unsigned char 的最大值 |
SHRT_MAX | short 的最大值 |
SHRT_MIN | short 的最小值 |
USHRT_MAX | unsigned short 的最大值 |
INT_MAX | int 的最大值 |
INT_MIN | int 的最小值 |
UNIT_MAX | unsigned int 的最大值 |
LONG_MAX | long 的最大值 |
LONG_MIN | long 的最小值 |
ULONG_MAX | unsigned long 的最大值 |
用sizeo函数计算字符类型的长度(此处暂时作为了解)
printf("unsigned char is %d bit\n\r", sizeof(uint8)*8);
printf("signed char is %d bit\n\r", sizeof(int8)*8);
printf("unsigned short is %d bit\n\r", sizeof(uint16)*8);
printf("signed short is %d bit\n\r", sizeof(int16)*8);
printf("unsigned int is %d bit\n\r", sizeof(uint32)*8);
printf("signed int is %d bit\n\r", sizeof(int32)*8);
printf("float fp32 is %d bit\n\r", sizeof(fp32)*8);
printf("double fp64 is %d bit\n\r", sizeof(fp64)*8);
printf("unsigned long is %d bit\n\r", sizeof(ulong)*8);
源代码如下:
[[root@CWG hc]# cat cllx.c
#include <stdio.h>
#include <limits.h>
#include <float.h>
main()
{
printf("以下是取值范围X~Y:\n");
printf("char range of %d ~ %d\n", CHAR_MAX, CHAR_MIN);
printf("singned char range of %d ~ %d\n", SCHAR_MAX, SCHAR_MIN);
printf("unsingned char range of 0 ~ %d\n", UCHAR_MAX);
printf("shuort int range of %d ~ %d\n", SHRT_MAX, SHRT_MIN);
printf("unsigned short int range of 0 ~ %d\n", USHRT_MAX);
printf("int range of %d ~ %d\n", INT_MAX, INT_MIN);
printf("unsigned int range of 0 ~ %d\n", UINT_MAX);
printf("long int range of %d ~ %d\n", LONG_MAX, LONG_MIN);
printf("unsigned long int range of 0 ~ %d\n", ULONG_MAX);
char uint8 = 0;
signed char int8 = 0;
unsigned short uint16 = 0;
signed short int16 = 0;
unsigned int uint32 = 0;
signed int int32 = 0;
float fp32 = 0;
double fp64 = 0;
unsigned long ulong = 0;
printf("以下是类型所对应的长度:\n");
printf("char bit:%d\n", CHAR_BIT);
printf("unsigned char is %d bit\n\r", sizeof(uint8)*8);
printf("signed char is %d bit\n\r", sizeof(int8)*8);
printf("unsigned short is %d bit\n\r", sizeof(uint16)*8);
printf("signed short is %d bit\n\r", sizeof(int16)*8);
printf("unsigned int is %d bit\n\r", sizeof(uint32)*8);
printf("signed int is %d bit\n\r", sizeof(int32)*8);
printf("float fp32 is %d bit\n\r", sizeof(fp32)*8);
printf("double fp64 is %d bit\n\r", sizeof(fp64)*8);
printf("unsigned long is %d bit\n\r", sizeof(ulong)*8);
}
运行结果如下:
[root@CWG hc]# cc cllx.c -o cllx
[root@CWG hc]# ./cllx
以下是取值范围X~Y:
char range of 127 ~ -128
singned char range of 127 ~ -128
unsingned char range of 0 ~ 255
shuort int range of 32767 ~ -32768
unsigned short int range of 0 ~ 65535
int range of 2147483647 ~ -2147483648
unsigned int range of 0 ~ -1
long int range of -1 ~ 0
unsigned long int range of 0 ~ -1
以下是类型所对应的长度:
char bit:8
unsigned char is 8 bit
signed char is 8 bit
unsigned short is 16 bit
signed short is 16 bit
unsigned int is 32 bit
signed int is 32 bit
float fp32 is 32 bit
double fp64 is 64 bit
unsigned long is 64 bit
本文要学习的就是以上小程序打印出来的东西
##################################
迷途小运维学习C程序语言笔记
作者:john
转载请注明出处
相关文章推荐
- C语言与JAVA语言中基本数据类型长度的比较
- [置顶] C语言中各种数据类型的长度 sizeof char, short, int, long, long long
- C语言基础数据类型所占字节长度
- c语言==测量各种数据类型的长度以及typedf关键字对数据类型的作用(21)
- c语言中各种数据类型的长度
- 数据类型长度运算符c语言中的
- C语言基本数据类型的长度和取值范围
- c语言原生数据类型长度探讨
- c语言中各种数据类型的长度
- c语言和java中的基本数据类型都一样吗,都有哪些,长度是多少
- C语言中各种数据类型的长度,long型是多少字节
- C语言中各种数据类型长度的总结
- C语言全局变量初始化、数据类型长度
- C语言中各种数据类型的长度 sizeof char, short, int, long, long long
- C语言各种数据类型的长度是个问题
- C语言中数据类型的本质含义是:表示一个内存格子的长度和解析方法
- C语言中各种数据类型长度的总结(转)
- C语言中各种数据类型长度
- C语言中各种数据类型长度的总结
- C语言中数据类型的长度