《C陷阱与缺陷》一1.2 &和 | 不同于&&和 ||

简介:

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

1.2 &和 | 不同于&&和 ||

很多其他语言都使用=作为比较运算符,因此很容易误将赋值运算符=写成比较运算符= =。同样地,将按位运算符&与逻辑运算符&&,或者将按位运算符 | 与逻辑运算符 || 调换,也是很容易犯的错误。特别是C语言中按位与运算符&和按位或运算符 | ,与某些其他语言中的按位与运算符和按位或运算符在表现形式上完全不同(如Pascal语言中分别是and和or),更容易让程序员因为受到其他语言的影响而犯错。关于这些运算符精确含义的讨论见本书的3.8节。

相关文章
|
7月前
|
存储 自然语言处理 编译器
C陷阱与缺陷
C陷阱与缺陷
31 0
C陷阱与缺陷
|
3月前
|
测试技术
常见测试陷阱
常见测试陷阱
|
3月前
|
存储 程序员 编译器
C陷阱与缺陷:语法陷阱
C陷阱与缺陷:语法陷阱
24 0
|
11月前
|
编译器 C语言
《C陷阱与缺陷》之“语义”陷阱——数组越界导致的程序死循环问题
《C陷阱与缺陷》之“语义”陷阱——数组越界导致的程序死循环问题
88 0
|
自然语言处理 编译器 程序员
【C陷阱与缺陷】----语法陷阱
由于一个程序错误可以从不同层面采用不同方式进行考察,而根据程序错误与考察程序的方式之间的相关性,可以将程序错误进行划分为各种陷阱与缺陷
68 0
|
存储 人工智能 自然语言处理
【C缺陷与陷阱】----语义“陷阱”
那获得该下标为0的元素的指针,如果给这个指针加1,就能得到指向该数组中下一个元素的指针。也就是指针+一个整数得到的还是指针,只不过指针的位置发生改变
80 0
|
编译器 C语言
源于《C陷阱与缺陷》----研究程序死循环问题
所以最后答案应该就是打印了12次xiao tao,然后越界访问出现错误,使arr[10]=0,arr[11]=0了 但最后答案却不是这样。
81 0