zl程序教程

您现在的位置是:首页 >  其它

当前栏目

《C陷阱与缺陷》一1.4 整型常量

1.4 常量 缺陷 陷阱 整型
2023-09-11 14:17:35 时间

本节书摘来自异步社区《C陷阱与缺陷》一书中的第1章,第1.4节,作者 【美】Andrew Koenig,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 整型常量

如果一个整型常量的第一个字符是数字0,那么该常量将被视作八进制数。因此,10与010的含义截然不同。此外,许多C编译器会把8和9也作为八进制数字处理。这种多少有点奇怪的处理方式来自八进制数的定义。例如,0195的含义是1×82+9×81+5×80,也就是141(十进制)或者0215(八进制)。我们当然不建议这种用法,ANSI C标准也禁止这种用法。

需要注意这种情况,有时候在上下文中为了格式对齐的需要,可能无意中将十进制数写成了八进制数,例如:

struct {

 int part_number;

 char *description;

}parttab[] = {

 046, "left-handed widget" ,

 047, "right-handed widget" ,

 125, "frammis"

};

【C缺陷与陷阱】----语义“陷阱” 那获得该下标为0的元素的指针,如果给这个指针加1,就能得到指向该数组中下一个元素的指针。也就是指针+一个整数得到的还是指针,只不过指针的位置发生改变
【C陷阱与缺陷】----语法陷阱 由于一个程序错误可以从不同层面采用不同方式进行考察,而根据程序错误与考察程序的方式之间的相关性,可以将程序错误进行划分为各种陷阱与缺陷
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。