C陷阱与缺陷 第一章
if( x =y )
foo();
而使用:
if( (x = y) != )
foo();
2. 注意编码规范,一定要在赋值号 “=”两边,写上空格,以避免如下的 无意识错误。
a = -;
但是没有加空格:
a=-;
这会被编译器翻译成:(这里猜测应该是很老的编译器才有这种解释,现在都是用 “+=”和“-=”运算符)
a = a - ;
3.进制的表示
int a ;
a = ; /*十进制*/
printf("a:%d \r\n" ,a);
a = ; /*八进制,以数字“0”开头*/
printf("a:%d \r\n" ,a);
a = 0x8D; /*十六进制*/
printf("a:%d \r\n" ,a);

a = ; /*八进制*/

4.字符与字符串
char * str = "test string address.";
char * str1 = "test string address.";
cout<<hex<<(int)( str)<<endl;/*以16进制无符号形式输出*/
cout<<(int )(str1)<< endl;
cout<<(int )("test string address.")<< endl;;
printf("Ox%x \r\n" ,str); /*以16进制无符号形式输出*/
printf("Ox%x \r\n" ,str1);
printf("Ox%x \r\n" ,"test string address.");
分别用C和C++的输出流,输出”test string address.”的地址,发现是一样的。

printf('\n' ); /*报错*/
printf("\n" );

int a ;
a = 'yes' ;
这时候,相当于把 int 变量当作一个 char [4]的数组,'yes'会被高位对高位,低位对低位的填充进a中。
cout <<(char )a<< endl;
cout <<(char )(a>>)<< endl;
cout <<(char )(a>>)<< endl;
cout <<(char )(a>>)<< endl;

cout <<(char )a<< endl;
cout <<(char )(a>>)<< endl;
cout <<(char )(a>>)<< endl;
cout <<(int )(a>>)<< endl;

int a ;
a = 'abcde' ;

C陷阱与缺陷 第一章的更多相关文章
- C缺陷与陷阱----读书笔记---第一章
第一章:词法陷阱 编译器中负责将程序分解为一个一个符号的部分,一般称为“词法分析器”.例如,对于语句: if ( x == big ) big = x ; 它的第一个符号是C语言关键字if,紧接着下一 ...
- C陷阱与缺陷 第二章
有关运算符优先级 1. "<<" 和 "+" data8 = data4H << 4 +data4L; 这里本意是让高四位的数据,左 ...
- [C陷阱和缺陷] 第1章 词法“陷阱”
有感自己的C语言在有些地方存在误区,所以重新仔细把"C陷阱和缺陷"翻出来看看,并写下这篇博客,用于读书总结以及日后方便自身复习. 第1章 词法"陷阱" 1.1 ...
- 读书笔记--C陷阱与缺陷(一)
要参与C语言项目,于是作者只好重拾C语言(之前都是C++,还是C++方便). 看到大家都推荐看看 C陷阱与缺陷(C traps and pitfalls),于是好奇的开始了这本书的读书之旅. 决定将 ...
- 《C陷阱与缺陷》阅读笔记(个人版)
笔记: 第一章:词法陷阱 提倡显示比较if((x = y) != 0) foo(); 第二章:语法陷阱 已知一个类型的声明 该类型的类型转换:吧声明中的变量名和声明末尾的分号去掉,再将剩余的部分用括号 ...
- 我的《C陷阱与缺陷》读书笔记
第一章 词法“陷阱” 1. =不同于== if(x = y) break; 实际上是将y赋给x,再检查x是否为0. 如果真的是这样预期,那么应该改为: if((x = y) != 0) break; ...
- 阅读《C陷阱与缺陷》的知识增量
版权声明:本文为Focustc原创文章.转载请注明作者及出处. https://blog.csdn.net/caozhankui/article/details/35925939 看完<C陷阱与 ...
- 《C陷阱与缺陷》杂记
第一章 词法"陷阱" 1.4整型常量 如果一个整型常量的第一个字符是数字0,那么该常量将被视作八进制数.因此,10与010的含义截然不同.需要注意这种情况,有时候在上下文为了格式& ...
- CISA 信息系统审计知识点 [第一章. 信息系统审计过程 ]
对有志成为审计师或者IT管理者de朋友, 第一章. 信息系统审计过程 1. IS 审计和保障标准.指南.工具.职业道德规范 信息技术保证框架(ITAF,Information Technology A ...
随机推荐
- openstack私有云布署实践【7.2 keystone + memcache (办公网环境)】
首先登录controller1创建keystone数据库,并赋于远程和本地访问的权限. mysql -u root -p CREATE DATABASE keystone; GRANT ALL P ...
- Lucene全文检索技术
Lucene全文检索技术 今日大纲 ● 搜索的概念.搜索引擎原理.倒排索引 ● 全文索引的概念 ● 使用Lucene对索引进行CRUD操作 ● Lucene常用API详解 ● ...
- 第一百一十五节,JavaScript,DOM操作表格
JavaScript,DOM操作表格 学习要点: 1.操作表格 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DO ...
- EMPTY isset unset var_dump 用法
empty 判断一个变量是否为空,返回布尔值 isset isset 判断一个值是否存在 unset取消变量设置, var_dump 打印变量并类型
- background-clip与background-origin两者的区别
第一篇随笔有提到 background-clip与background-origin两者的区别,但是太字面化了,对于小白而言甚是难以理解,包括我自己,在第二次去理解的时候,反而蒙圈了.所以,查阅了一些 ...
- redis连接池操作
/** * @类描述 redis 工具 * @功能名 POJO * @author zxf * @date 2014年11月25日 */public final class RedisUtil { p ...
- Android onConfigurationChanged的作用
API原文说明: android:configChangesLists configuration changes that the activity will handle itself. When ...
- HDU 1258 Sum It Up(DFS)
题目链接 Problem Description Given a specified total t and a list of n integers, find all distinct sums ...
- php 积少成多!
- Java 内部类和匿名内部类
1.内部类: /* 局部内部类: 在一个类 的方法内部定义另外一个类,那么另外一个类就称作为局部内部类. 局部内部类要注意的细节: 1. 如果局部 内部类访问了一个局部变量,那么该局部变量必须使用fi ...