C语言——第三章

news/2024/6/29 12:04:27 标签: 语言, c, 测试, 编译器, 存储, 优化
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

一.

算术运算符都低于纯算术类运算符࿰c;高于赋值类运算符࿰c;并且它们结合方式都是从左到右的。例如:int x = 2, y = 3, z; z=3-1>=x+1<=y+2;

这个表达式包括赋值、关系、算术三种运算。其中赋值运算的优先级最低࿰c;其次为关系运算࿰c;算术运算的优先级最高。因此࿰c;先进行算术运算࿰c;得:z=2>=3<=5c;然后计算2>=3,0(假)࿰c;得z=0<=5c;再计算0<=5c;其值为1(真)࿰c;所以z的值为1.


二.

字符数据的比较按照ASCII码值进行。忧郁字符数据按ASCII码进行存储c;故可作为正数参加运算和比较。例如,'a'>0的值为1(真)࿰c;'a'>100的值为0(假)。


三.

在判断两个浮点数是否相等时࿰c;忧郁存储上所产生的误差࿰c;会得出错误的结果。例如

1.0/3.0*3.0 == 1.0在数学上是一个恒等式࿰c;但是由于1.0/3.0所得值的有效位数有限࿰c;并不等于0.3333...c;因此上面关系表达式的值为0(假)࿰c;所以应该避免对两个实数表达式做“相等”或“不相等”的判别。上式可以改成:fabs(1.0/3.0*3.0-1.0)<1e-5c;fabs是求绝对值函数。只要两个实数之间的差小于10-5次方࿰c;就可以认为两个实数相等了。


四.

由于编译器一般具有优化功能࿰c;当&&左边为0c;||左边为1c;则停止计算࿰c;返回对应的结果。(智能的很~ ~)。


五.

关于swich的应用࿰c;可以参考一个例子:http://blog.csdn.net/niushuai666/article/details/7287641

使用switch结构需要注意以下几点:

1.一个switch结构的执行部分是由一些case子结构和一个可缺省的default子结构所组成的复合语句࿰c;它们位于一堆花括号之内。

2.Switch的判断表达式只能对正数求值࿰c;可以使用字符或整数࿰c;但不能使用浮点表达式。Case子结构的表达式应该是整型常数表达式࿰c;不能含有变量与函数。例如可以是case 3+4:或者case 'a':  但是不允许是case x+y: 

3.一个switch结构中不能出现两个具有相同值的常数表达式。

4.Switch中的匹配测试只能测试是否成功࿰c;不能测试关系表达式或逻辑表达式。

5.C89要求C编译系统应当实现:一个switch结构至少可以包含257case子结构࿰c;而C99则要求至少支持1023case子结构。

6.Switch结构可以允许嵌套使用。


六.

牛顿迭代法

x = x - f(x) / f'(x)

资料可以从这里获得:

http://www.matrix67.com/blog/archives/361

http://www.matrix67.com/blog/archives/362


七.

优先决
  括号成员第一; //括号运算符[]() 成员运算符. ->
  全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
  乘除余三,加减四; //这个"余"是指取余运算即%
  移位五࿰c;关系六; //移位运算符:<< >> ࿰c;关系:> < >= <= 等
  等于(与)不等排第七; //即== !=
  位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) 
  "三分天下"八九十; 
  逻辑或跟与; //逻辑运算符:|| 和 &&
  十二和十一; //注意顺序:优先级(||) 底于 优先级(&&) 
  条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
  逗号运算级最低! //逗号运算符优先级最低
  由于Cclass="tags" href="/tags/YuYan.html" title=语言>语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符)࿰c;所以这个口诀不能完全实用于C++.但是应该能够兼容࿰c;大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!

c="http://hi.csdn.net/attachment/201202/27/0_1330311815wOQb.gif" alt="" />

c="http://hi.csdn.net/attachment/201202/27/0_13303118292wWR.gif" alt="" />

c="http://hi.csdn.net/attachment/201202/27/0_13303118433tU0.gif" alt="" />

cle>

http://www.niftyadmin.cn/n/1516724.html

相关文章

Linux命令——lscpu

每个能够同时多线程处理的物理内核的线程作为独立的处理单元呈现给操作系统。 因此&#xff0c;具有两个执行线程的物理核心被操作系统视为两个&#xff08;逻辑&#xff09;核心。   each thread of execution of a physical core capable of simultaneous multithreading i…

面试70技巧

1、请你自我介绍一下你自己&#xff0c; 回答提示&#xff1a;一般人回答这个问题过于平常&#xff0c;只说姓名、年龄、爱好、工作经验&#xff0c;这些在简历上都有&#xff0c;其实&#xff0c;企业最希望知道的是求职者能否胜任工作&#xff0c;包括&#xff1a;最强的技能…

C语言——第四章

一&#xff0e; 程序进行编译时&#xff0c;并不为形式参数分配存储空间。只有在函数被调用时&#xff0c;形式参数才临时的占有存储空间&#xff0c;其过程如下&#xff1a; 1.调用开始&#xff0c;系统为形参开辟一个临时存储区&#xff0c;形参与实参各占有一个独立的存储空…

c语言log_C语言和时间有关的函数示例

C语言中和时间相关的函数&#xff0c;通常有两种用法&#xff1a;显示当前时间&#xff0c;用于记log、时间和日期的可视化等&#xff1b;记录程序耗时&#xff0c;用于分析、比较某段函数的运行所消耗的时间。本篇介绍第一种用法&#xff0c;第二种用法可参见&#xff1a;C函数…

intel RDT (Resource Director Technology) 管理LLC和内存带宽

问题&#xff1a; 在虚拟化环境中&#xff0c;宿主机的资源&#xff08;包括CPU cache和内存带宽&#xff09;都是共享的。但是如果有一个消耗cache的应用快速消耗了L3缓存&#xff0c;或者一个应用消耗了系统大量内存带宽&#xff0c;那么如何保证其他虚拟机应用呢&#xff1f…

WinCE6.0 R3的安装步骤

很早以前装过一次R3&#xff0c;装完以后直接导致编译不过&#xff0c;当时也没找到解决办法&#xff0c;最后只能放弃&#xff0c;一直没再动它。这两天ZWF在调试程序的过程中发现了一个BUG&#xff0c;应用程序无法正确设置文件夹的隐藏属性。起初我以为是NAND驱动或者是注册…

经典笔试题目分析

1、 用预处理指令#define 声明一个常数&#xff0c;用以表明1年中有多少秒&#xff08;忽略闰年问题&#xff09; #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 1) #define 语法的基本知识&#xff08;例如&#xff1a;不能以分号结束&#xff0c;括号的使用&#xff…

python opencv图像处理函数_Python+OpenCV图像处理(十二)—— 图像梯度

简介&#xff1a;图像梯度可以把图像看成二维离散函数&#xff0c;图像梯度其实就是这个二维离散函数的求导。 Sobel算子是普通一阶差分&#xff0c;是基于寻找梯度强度。拉普拉斯算子&#xff08;二阶差分&#xff09;是基于过零点检测。通过计算梯度&#xff0c;设置阀值&…