关于||和&&运算符及表达式的执行
摘要:++a || ++b && ++c表达式中++a,--b,++c三者执行与否的判断在||运算符前的表达式为真,则其后的表达式不执行eg:执行前 a=2, b=2, c=2 执行后 a=3, b=2, c=2在&&运算符前的表达式为假,则其后的表达式不执行eg:执行前:a=-2, b=-2, c=...
阅读全文
不用任何操作符(包括位运算符)计算两个数的加法
摘要:先上代码: int add(int left, int right) { return printf("%*s%*s", left, " ", right, " "); } 这种奇葩的题目很有可能出现在面试中,不同于曾经出现过的不用+、-、*、/操作符来实现两数的四则运算,这一题...
阅读全文
关于C中指针的引用,解引用与脱去解引用
摘要:*,& 在指针操作中的意义(1)*大家都知道在写int *p 时,*可以声明一个指针。很少人知道*在C/C++中还有一个名字就是“解引用”。他的意思就是解释引用,说的通俗一点就是,直接去寻找指针所指的地址里面的内容,此内容可以是任何数据类型,当然也可以是指针(这就是双重指针,后面将会讨论)。需要注意...
阅读全文
malloc,calloc,realloc三者的区别
摘要:malloc,calloc,realloc三者都可以运用与动态分配数组。malloc:用malloc必须要自己初始化,可以用memset(arr,0,cnt*sizeof(int))calloc:会在分配时自动初始化,不用再单独初始化realloc:用于对原先空间扩容 arr = (int *)re...
阅读全文
fflush(stdin)和fflush(stdout)
摘要:转自:http://blog.csdn.net/yeyuangen/article/details/6743416fflush(stdin)即清理标准输入流,把多余的仍未被保存的数据丢掉。fflush(stdout):清空输出缓冲区,并把缓冲区内容输出比如,下面这个小程序:void main(){ ...
阅读全文
关于C语言中的位运算符的学习即应用
摘要:一.运算符的种类和运算规则: & 与:全1则1,有0则0 | 或:有1则1,全0则0 ^ 异或:相同为0,不同为1 ~ 取反:~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0 >右移:将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0二.各种位运...
阅读全文
一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。
摘要:题目中包括三个小的问题,由简单到复杂:1,如果只有一个出现一次,考察到异或的性质,就是如果同一个数字和自己异或的活结果为零,那么循环遍历一遍数组,将数组中的元素全部做异或运算,那么出现两次的数字全部异或掉了,得到的结果就是只出现一次的那个数字。下面首先给这部分的程序和实例分析: 1 #include...
阅读全文