C语言
小雪小花
这个作者很懒,什么都没留下…
展开
-
思考C语言变量的几个“属性”
在C语言中声明或定义一个变量的完整格式:存储类型 数据类型 变量名1、数据类型众所周知,如int,float等基本数据类型和结构体、枚举等构造数据类型,不做讨论。 2、存储周期主要有三种:① auto:缺省时默认的存储类型,进入语句块时自动申请内存,退出时自动释放内存;不初始化时,值是不确定的。② register:适用于使用频率比较高的变量,使程序更小、执行速原创 2014-03-23 20:00:07 · 805 阅读 · 0 评论 -
整型数据的溢出
之前遇到了一个两个unsigned类型数据相减,结果应为一个负数,但由于返回值类型为unsigned型,却得到了一个大数的情况。这篇文章正好解决了这个问题。先看几张图:在计算机中,4位无符号数表示为: 有符号数原码表示为,其中,最高位为符号位,0正1负: 有符号数的反码表示为(复习一下什么是反码,原码除符号位,各位取反): 有符号数的补码表示为(复习一下,补码是反码原创 2014-03-23 18:33:16 · 1314 阅读 · 0 评论 -
C语言中的无符号数
首先来看一道题目: 自己写一遍运行一下,发现打印了“ok”,怪怪的,str2比str1长吗?为什么呢?原因是,Char型数组的长度一定是>=0,所以strlen()函数的返回值是一个无符号整数,7-3=-4在无符号整数中自动转化成一个正整数,在visual studio 2012下debug会看到如下所示的结果,差值是一个429...的大数,所以结果出错: 下面,程序做原创 2014-03-20 23:39:50 · 1442 阅读 · 1 评论