c编程的问题

软件和网站开发以及相关技术探讨
w3484732
帖子: 36
注册时间: 2007-05-11 19:48
来自: 湖北襄樊

c编程的问题

#1

帖子 w3484732 » 2008-06-06 22:10

我用linux编程遇到了和书不一样的问题:


例3。3
按照书上给出的结果是:32767,-32768


那为什么我运行的结果是:32767,32768呢,int的最小取值范围不是-32768~32767么?
怎么我这个程序运行的和书上不一样呢,我看好像变成了32位的了。
这个现象请各位大大们帮忙解释一下!
附件
IMG_2082.JPG
Screenshot.png
dbzhang800
帖子: 3182
注册时间: 2006-03-10 15:10
来自: xi'an China
联系:

#2

帖子 dbzhang800 » 2008-06-06 22:24

书太老了,找本新一点的书看
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

#3

帖子 solcomo » 2008-06-06 22:26

:lol:
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
w3484732
帖子: 36
注册时间: 2007-05-11 19:48
来自: 湖北襄樊

#4

帖子 w3484732 » 2008-06-06 22:37

不是把,到那弄本新书阿,能给推荐一本么,要只教c的,不用什么软件的
hgshlg
帖子: 222
注册时间: 2007-08-30 14:45

#5

帖子 hgshlg » 2008-06-06 22:43

你的系统是32位的吧,sizeof(int)看看int多少位
头像
command
帖子: 306
注册时间: 2007-10-14 0:50
来自: GUCAS

#6

帖子 command » 2008-06-06 22:45

K&R最经典,最权威。
OS: Debian GNU/Linux
Version: lenny
Kernel: 2.6.36
Xorg: 1.4.2
CPU: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
HD: 320G SATA
Memory: 2G DDRIII
Graphics:Mobility Radeon HD 3450
w3484732
帖子: 36
注册时间: 2007-05-11 19:48
来自: 湖北襄樊

#7

帖子 w3484732 » 2008-06-06 22:48

好,我 到书店去看看去!
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#8

帖子 poet » 2008-06-06 23:15

command 写了:K&R最经典,最权威。
不兴这么害的。

经典的K&R,对于研究C语言的专家学者而言,或许有一定的参考作用,学习了C语言的历史发展与变迁。

但是对于现在的C,语法跟K&R已经有了太大的不同。让新手去学K&R就太不应该。

至于楼主:不论这书是老还是新,礽掉换一本吧。这书的作者显然有基本概念性/原理性错误。
(任何一本权威的C语言书籍,绝对不敢说int的范围是-32768-32767,因为C语言国际标准都已经清楚的说了,int的长度是不定的,不能期望int具有任何固定的长度,也不能期望int一定等于机器字长,更不能期望int一定能放进一个指针。)
头像
alphauslee
帖子: 5
注册时间: 2008-04-25 20:46
来自: 广西

#9

帖子 alphauslee » 2008-06-06 23:41

Ubuntu 8.04下:
/* Minimum and maximum values a `signed int' can hold. */
# define INT_MIN (-INT_MAX - 1)
# define INT_MAX 2147483647
Ubuntu
头像
command
帖子: 306
注册时间: 2007-10-14 0:50
来自: GUCAS

#10

帖子 command » 2008-06-07 13:17

poet 写了:
command 写了:K&R最经典,最权威。
不兴这么害的。

经典的K&R,对于研究C语言的专家学者而言,或许有一定的参考作用,学习了C语言的历史发展与变迁。

但是对于现在的C,语法跟K&R已经有了太大的不同。让新手去学K&R就太不应该。

至于楼主:不论这书是老还是新,礽掉换一本吧。这书的作者显然有基本概念性/原理性错误。
(任何一本权威的C语言书籍,绝对不敢说int的范围是-32768-32767,因为C语言国际标准都已经清楚的说了,int的长度是不定的,不能期望int具有任何固定的长度,也不能期望int一定等于机器字长,更不能期望int一定能放进一个指针。)
任何东西要想学透彻,都必须要了解他的本质,对C语言而言,我想没有任何一本书能超过K&R有助于了解本质的了。至于语法方面可以找一本关于C标准的文献来看,比如C99等。
OS: Debian GNU/Linux
Version: lenny
Kernel: 2.6.36
Xorg: 1.4.2
CPU: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
HD: 320G SATA
Memory: 2G DDRIII
Graphics:Mobility Radeon HD 3450
头像
zhulaoke
帖子: 109
注册时间: 2008-06-06 21:02

#11

帖子 zhulaoke » 2008-06-07 14:55

用short


int 是32位的。有2G,你 放心吧
flyinflash
帖子: 2376
注册时间: 2006-09-21 14:28

#12

帖子 flyinflash » 2008-06-07 18:59

肯定是那个该死的死农村佬潭*强的书
w3484732
帖子: 36
注册时间: 2007-05-11 19:48
来自: 湖北襄樊

#13

帖子 w3484732 » 2008-06-07 21:08

太厉害了,你怎么知道是他的 书阿 ,我这的人都说他的书好阿
w3484732
帖子: 36
注册时间: 2007-05-11 19:48
来自: 湖北襄樊

#14

帖子 w3484732 » 2008-06-07 21:20

这本书上说的是:
基本整型,以int表示
断整型以short int表示
长整型以long int表示
flyinflash
帖子: 2376
注册时间: 2006-09-21 14:28

#15

帖子 flyinflash » 2008-06-07 23:44

推荐使用 geany IDE

代码: 全选

sudo apt-get install geany

http://www.shuge.org/share/project/gent ... 4%E7%94%A8

编译型语言 C

想入门,有三本书是必看的。
《C 程序设计语言》
作者: (美)克尼汉 / (美)里奇
http://www.douban.com/subject/1139336/
《Linux 程序设计》
《Unix 环境高级编程》
把那个该死的农村佬写的书扔了,早扔一天,您就被它少折磨一天
回复