随笔分类 - 《品悟C》样张与草稿
摘要:你也许并不知道,C语言的类型转换运算符和sizeof、(一元)&运算符的优先级并不相同
阅读全文
摘要:如果是scanf("a=%f,b=%f,c=%f",&a,&b,&c);输入应采用如下形式a=12,b=24,c=36采用这种形式是为了使用户输入数据时添加必要的信息,使含义清楚,不易发生输入数据的错误。——谭浩强,《C语言程序设计》(第2版),清华大学出版社,2008年11月,p71~72这段文字很唬人,貌似讲的头头是道,其实愚蠢透顶。程序是用来为用户解决问题的,而不是用来给用户添麻烦的。任何一个合格的程序员都不会写出scanf("a=%f,b=%f,c=%f",&a,&b,&c); 这样的代码。理由是,
阅读全文
摘要:谭浩强《C程序设计》(第四版)优先级和结合性部分的评述。
阅读全文
摘要:1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民经济生产总值与现在相比增长多少百分比。计算公式为: p=(1+r)^nr为年增长率,n为年数,p为与现在相比的倍数。 解:从附录D(库函数)可以查到: 可以用pow函数求x^y的值,调用pow函数的具体形式是pow(x,y)。在使用pow函数时需要在程序的开头用#include指令将 头文件包含到本程序模块中。可以用下面的程序求出10年后国民生产总值是现在的多少倍。 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("
阅读全文
摘要:C程序的执行是从main函数开始的,如果在main函数中调用其他函数,在调用后流程返回到main函数,在main函数中结束整个程序的运行。 这段有些莫名其妙的文字即使从汉语语法的角度来说也成问题。成问题的地方在于“在调用后流程返回到main函数”不清楚是前面“如果”的一个结果还是对前面“如果”的一个补充。 抛开这种语文方面的缺点不谈,这段文字给人的印象就是“C程序从main函数开始执行,在main函数结束”。然而事实真的如此吗? C程序的运行离不开一定的环境(Environment),这种环境叫做执行环境(Execution environment)。这种环境有两种:独立环境(Fre...
阅读全文
摘要:赋值表达式也可以包括复合的赋值运算符。例如: int a=12; a+=a-=a*a 也是一个赋值表达式。如果a的初值为12,此赋值表达式的求解步骤如下: ①先进行“a-=a*a”的运算,它相当于a=a-a*a,a的值为12-144=-132。 ②再进行“a+=-132”的运算,相当于a=a+(-132),a的值为-132-132=-264。 首先需要说明的是,这段文字中的“int a=12;”那行是笔者添加的。因为在不交代“a”的定义(变量还是常量?数据类型?)的前提下,那段讨论本身就是毫无意义的。为了把那段错误的文字提升到值得讨论的水平,增加“int a=12;”这个前提条件是...
阅读全文