C和C指针小记(七)-整型变量范围
1、变量范围
limits.h 头文件中定义来C 语言的变量范围.
变量范围的限制
//char 的范围
printf("CHAR_BIT:%d CHAR_MIN:%d CHAR_MAX:%d\n",CHAR_BIT,CHAR_MIN,CHAR_MAX);
//signed char 范围
printf("SCHAR_MIN:%d SCHAR_MAX:%d \n",SCHAR_MIN,SCHAR_MAX);
//unsigned char 最大值
printf("UCHAR_MAX:%d \n",UCHAR_MAX);
//short int 范围
printf("SHRT_MIN:%d SHRT_MAX:%d USHRT_MAX:%d \n",SHRT_MIN,SHRT_MAX,USHRT_MAX);
//int 范围
printf("INT_MIN:%d INT_MAX:%d \n",INT_MIN, INT_MAX);
//long int 范围
printf("LONG_BIT:%d LONG_MIN :%ld LONG_MAX:%ld ULONG_MAX:%ld \n",LONG_BIT, LONG_MIN, LONG_MAX, ULONG_MAX);
//long long int 范围
printf("LONG_BIT:%d LONG_LONG_MIN:%lld LONG_LONG_MAX:%lld ULONG_LONG_MAX:%lld \n",LONG_BIT,LONG_LONG_MIN,LONG_LONG_MAX, ULONG_LONG_MAX);
输出结果
CHAR_BIT:8 CHAR_MIN:-128 CHAR_MAX:127
SCHAR_MIN:-128 SCHAR_MAX:127
UCHAR_MAX:255
SHRT_MIN:-32768 SHRT_MAX:32767 USHRT_MAX:65535
INT_MIN:-2147483648 INT_MAX:2147483647
LONG_BIT:64 LONG_MIN :-9223372036854775808 LONG_MAX:9223372036854775807 ULONG_MAX:-1
LONG_BIT:64 LONG_LONG_MIN:-9223372036854775808 LONG_LONG_MAX:9223372036854775807 ULONG_LONG_MAX:-1
注意:不管是int,还是 long int, long long int无符号整型的最大范围都是-1.因为计算机内负数是补码表示的,对计算机来说,-1最大.
C和C指针小记(七)-整型变量范围的更多相关文章
- C和C指针小记(一)-字符输入,函数,ASCII扩展表
1.连续接收输入字符时 int ch; while(ch != EOF && ch != '\n') ch 为什么被声明为整形,我们不是需要用它来读取字符的嘛? 因为:EOF是一个整形 ...
- C和指针 第七章 习题
7.1 hermite递归函数 int hermite(int n, int x) { if (n <= 0) { return 1; } if (n == 1) { return 2 * x; ...
- C和指针 第七章 可变参数
可变参数列表是通过stdarg.h内的宏来实现的: 类型 va_list 三个宏: va_start va_arg va_end 我们可以声明一个va_list变量,与这三个宏配合使用. 可变参数必须 ...
- C和C指针小记(十八)-使用结构和指针-双向链表
1.双链表 1.1 双向链表的声明 在一个双链表中,每个节点都包含两个指针--指向前一个节点的指针和指向后一个节点的指针. 声明 typedef struct NODE { struct NODE * ...
- C和C指针小记(十六)-动态内存分配
动态内存分配 1.1 为什么使用动态内存分配 直接声明数组的方式的缺点: 1) 声明数组必须指定长度限制.无法处理超过声明长度的数组. 2) 如果声明更大的常量来弥补第一个缺点,会造成更多的内存浪费. ...
- C和C指针小记(十七)-使用结构和指针-链表
1.链表 链表(linked list)即使是一些包含数据的独立数据结构的(Node)集合. 链表中的每个节点通过链或指针链接在一起. 程序通过指针访问链表中的节点. 节点通常是动态分配的,但也有由节 ...
- C和C指针小记(十五)-结构和联合
1.结构 1.1 结构声明 在声明结构时,必须列出它包含的所有成员.这个列表包括每个成员的类型和名称. struct tag {member-list} variable-list; 例如 //A s ...
- C和C指针小记(十四)-字符串、字符和字节
1.字符串 C语言没有字符串数据类型,因为字符串以字符串常量的形式出现或存储于字符数组中. 字符串常量和适用于那些程序不会对他们进行修改的字符串. 所有其他字符串都必须存储于字符串数组或动态分配的内存 ...
- C和C指针小记(十三)-数组
1.1 一维数组 一维数组的声明: int a[10]; 这里a就是一个数组. 数组a的类型就是一个指向整型的常量指针. 但是数组和指针是**不相同**的. **数组具有特定数量的元素,而指针只是一个 ...
随机推荐
- GIT无法自动忽略YellowRV1.1.uvgui.Administrator文件的解决方法
原来这个YellowRV1.1.uvgui.Administrator文件是在.gitignore之前被提交进服务器的,.gitignore对已经存在服务器里的文件是不起作用的.按照回答里投票最高的答 ...
- Socket网络编程--聊天程序(9)
这一节应该是聊天程序的最后一节了,现在回顾我们的聊天程序,看起来还有很多功能没有实现,但是不管怎么说,都还是不错的.这一节我们将讲多服务器问题(高大上的说法就是负载问题了.)至于聊天程序的文件发送(也 ...
- Linux查看CPU和内存的配置信息
CPU配置信息:frank@ubuntu:~/test/python$ cat /proc/cpuinfo processor : #系统中逻辑处理核的编号 vendor_id : GenuineIn ...
- tensorflow笔记6:tf.nn.dynamic_rnn 和 bidirectional_dynamic_rnn:的输出,output和state,以及如何作为decoder 的输入
一.tf.nn.dynamic_rnn :函数使用和输出 官网:https://www.tensorflow.org/api_docs/python/tf/nn/dynamic_rnn 使用说明: A ...
- TCP/IP协议理解
TCP/IP协议理解 一. 协议分层 由于ISO标准中的网络模型是个7层模型,但是由于7层模型对于当时的网络厂商来说太过复杂,很多厂家采用了简化的4层模型来实现网络设备,4层模型也就成了事实的网 ...
- Centos 6.4 安装dnsmasq
1 下载源码 wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.45.tar.gz cp dnsmasq-2.45.tar.gz /usr/src ...
- Vue.js常用指令:v-model
一.v-model指令 v-model 用来获取表单元素的值.对应input输入框获取的是输入的值,单选按钮.复选框.下拉框获取的是选择的状态. 代码示例如下: <!DOCTYPE html&g ...
- windows下更换pip源
(1)在windows文件管理器中,输入 %APPDATA% (2)会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件 (3)在新建的pip.ini文 ...
- Ubuntu上运行Blender,在控制台上查看运行结果
1.首先在控制台打开Blender. 具体操作:找到Blender的安装路径,我的是:/home/lcx/下载/blender-2.78c-linux-glibc219-x86_64 $cd /hom ...
- linux(centos7) nginx php mysql安装
环境: linux:centos7 php:7.0 基础命令 // yum install -y lrzsz // centos7 默认已安装yum install epel-release ngin ...