符。换行用。好了,这两个程序解答完了,相信大家已经有感觉了。思考真的会带来无限的收获。也希望大家有新的发现及想法,并告诉给我。让我们共同进步!除了上面两个红色的问题,另外再提出几个问题:1C中的重载是什么意思?2C中怎么重载运算符?3了解下编译器的堆栈调用窗口。4怎么在编译器里面设置给程序传命令行参数?命令行参数在实际中有什么运用?
语言入门篇】【CC语言入门篇】基本数据类型语言入门篇
前一篇我们介绍了一个简单不过的helloworld程序引出相关问题。趁着还没有忘掉那些思考方式的记忆,本篇继续延续这种思维方式的理念,介绍一下CC中的基本数据类型。数据类型不清楚的话在以后的编程中会有很多谜团和问题。甚至一个程序的BUG找半天也没有找出来时为什么,结果才发现是加减溢出了。更加严重的还有写越界、读越界等。同样比如网络传输时的消息结构对待每个字节,每个成员的大小及类型都有很严格的追求。下面我们就逐个进行介绍。首先、我们看32位的整数:i
t、u
sig
edi
t、lo
g、u
sig
edlo
g。这些都是基本类型,没有u
sig
ed关键字的是有符号的,反之是无符号的。还有比如DWORD、UINT这些也只是写别名(typedef)而已。有符号整数值得注意的是什么范围内是正数,什么范围是负数。这样对于加减运算、比较运算等有很大帮助,否则很容易溢出或者比较错误。举个例子:u
sig
edi
tloop5forloop0loop
f这样一个循环,稍微不注意。就认为它是成立的,其实他是一个死循环。这里会减到0,成立继续减。由于是无符号,将减成最大的32位无符号整数:0xffffffff之后继续减,因此为死循环。说到这里,又要提出一个问题了。我们需要记住常用的一些十六进制数,比如:0xffffffff0x800000000x7fffffff等。那么:1为什么需要记住这些?这些数有什么特点?在有符号和无符号32位整数里,它们分别代表什么?其次、是16位整数,short占2字节。需要注意的跟上面32位整数差不多。2根据第一个问题,大家可以猜猜16位甚至8位有符号、无符号整数需要记住常用的16进制数有哪些?再次、是8位整数,也可以理解成字符。比如char、u
sig
edchar、bool这里只描述了基本的类型,其它typedef也是根据这些变了名字而已。在这里需要认识一点,char别始终认为是用在字符上,同样要有观念它是整数,而且是有符号的。大家可以做实验去了解他的范围。在上面的两个问题里,我相信你只要答对了,也就知道他的范围了。这里的bool需要说明,bor