the c programing language 学习过程3
ControlFlow 控制流
specify 指定 compound statement 复合语句 cryptic有隐含意义的 ambiguity歧义 robust稳健 disintegration解体 sparingly节制 algorithm演算法 appropriate适合的适当的 iteration循环 nontrival非平凡的 重大的 dogmatic教条 武断
1复合语句(分程序)语法上等价于单个语句 分程序最右边的}不用加分号
2else在ifelse语句中可以缺省 但是嵌套中会与最近的if 匹配 如果不希望这样 最好加上花括号 (C PRIM PLUS 里面提到 else;加上可以微微提高程序效率,同时在多重elseif语句中 可以用最后个else来检查错误)
if ( n >= 0 )
for ( i = 0; i < n; i++ )
if ( s[i] > 0) {
printf ( "…" ); //注意这里也要加分号
return i;
}
else /* 错 */
printf ( "error -- n is negative\n" ); 比如这坨 缩进看起来else匹配第一个if 实际上还是匹配第二个if
3switch case ‘常量或者整数表达式’:statement;
statement;
break;//立刻exit form the switch 不加的话 switch会继续执行下一个语句 return也可以结束 同样 break也可以结束while for do的循环
4不添加break可以让程序执行下一个case 但是这个方法不够稳健 程序修改时容易出现错误 我们应当尽量减少这种情况 在必要的情况下 要加上注释 同样d e f a u l t 之后加一个break;也为程序多一道保险
5,运算符 从左到右运算 c=(1+1,2+1) 取右边的值 2+1
6continue用在while for 当中不能用在switch 但是在switch内出现可以控制switch外的循环
7goto 非必要 但是也挺方便的 (CPRIME +我看到一个说这个方法有个缺点 是啥来着=,=) 标签带冒号 覆盖范围是整个函数
goto found;
BLABLABLA
found:
blablabla
用goto的语句
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
if (a[i] == b[j])
goto found;
/* 没有找到相同元素 */
…
found:
/* 取一个满足a[i] ==b[j]的元素 */
…
不用的语句
found = 0;
for (i = 0; i < n && !found; i++)
for (j = 0; j < m && !found; j++)
if (a[i] == b[j])
found = 1;
if (found)
/* 取一个满足a[i-1] ==b[j-1]的元素 */
…
else
/* 没有找到相同元素 */
…
虽然goto容易看懂,也方便维护 但是最好别用 (查了下 大致是说会弄乱程序逻辑和结构 当然你的goto只是向下延伸应该问题不大 这玩意学的时候看到说不要用 自己也没怎么记)
the c programing language 学习过程3的更多相关文章
- the c programing language 学习过程8
glean 捡拾落穗; glean insight 深入了解 modeled模型化 peripheral外围的 himogeneous匀称的 intents 意图 excerpt摘录 intende ...
- the c programing language 学习过程7
interact 互动 carriage运费运输 linefeed 换行 redirection改方向 interleaved交叉存取 adequate足够的 untouched原样的 specif ...
- the c programing language 学习过程6
payroll工资名单 hierarchy分层层次 vexing 使人烦恼的 alignment结盟 semantics 语义 aethetic审美 parameterize 参数化 1结构标记 成员 ...
- the c programing language 学习过程5
lumped 集成总结 mandating托管 consecutively连续地 contiguous临近的 mnemonic记忆力的 mimics 酷似 魔方 bind捆绑 synonym同义词 s ...
- the c programing language 学习过程4
4Functions and Program Structure scratch 刮擦 starting over from scratch从头开始 reside驻留 separately 分别的 f ...
- the c programing language 学习过程2
manipulated 操纵 notations符号 hexadecimal十六进制 precision精度 be concatenated at 把····联系起来 enumerations枚举 ...
- 使用一个数组存储一个英文句子"java is an object oriented programing language"
class fun { public static void main(String[] args) { String str="java is an object oriented pro ...
- The python programing language
Python is an example of high-level language. As you might infer from the name “high-level language”, ...
- Linux下C高手成长过程
建议学习路径: 首先先学学编辑器,vim, emacs什么的都行. 然后学make file文件,只要知道一点就行,这样就可以准备编程序了. 然后看看<C程序设计语言>K&R, ...
随机推荐
- python_7_列表
什么是列表? --一种数据类型 -- 形式:[值1,值2,[值a,值b],值3] --可以嵌套 #!/usr/bin/python3 list_a = [1, 2, [3, 'a']] 对于 ...
- python_py2和py3读写文本区别
python2和python3的区别? python 2 str 对应 python3 bytes python 2 uincode 对应 ...
- [Qt Quick] qmlscene工具的使用
qmlscene是Qt 5提供的一个查看qml文件效果的工具.特点是不需要编译应用程序. qmlscene = qml + scene (场景) qmlscene.exe位于Qt的安装目录下 (类似/ ...
- 无废话XML--XML细节
今天开始研究xml,其实在实际的开发中,我们参与到真正的XML开发并不是很多,最多写一个配置,但是我还是觉得很有必要把XML的知识整理一遍.作为基本的2种的数据交互载体(还有一个是json),基本的X ...
- linkin大话数据结构--Set
Set 集合 Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败. Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals 方法.也 ...
- Git多帐号配置,管理多个SSH
查看自己所有的SSH-Key $ cd ~/.ssh $ ls id_rsa id_rsa.pub known_hosts 如果你已经创建过git账号那你可能和我一样会看到只有一个SSH-Key, 这 ...
- LVS负载均衡介绍
LVS介绍 负载均衡器 • 链路负载均衡 (三层负载均衡) • 服务器负载均衡 (四层负载均衡) • 应用层负载均衡 (七层负载均衡) • 全局负载均衡 基本情况 • 实现服务器负载均衡 • 核心功能 ...
- 关于主机用户名显示为"-bash-4.1$"
牢记 <1> .(小数点)==> 代表一个任意字符 <2> *(星)====> 重复前面一个字符0到无穷次 1.出现这中情况是因为:用户环境变量的文件没了,通 ...
- 2018Pycharm激活方法
1.将"0.0.0.0 account.jetbrains.com"添加到hosts文件中 2.打开http://idea.lanyus.com/ 3.获取激活码,粘贴到第二个选项 ...
- 史上最全的JFinal源码分析(不间断更新)
打算 开始 写 这么 一个系列,希望 大家 喜欢,学习 本来就是 一个查漏补缺的过程,希望大家能提出建议.本篇 文章 是整个目录的向导,希望 大家 喜欢.本文 将以 包的形式跟大家做向导. Handl ...