随笔分类 - 语言基础
对语言基础的查缺补漏
摘要:运算符问题int main(){ unsigned char a = 0xA5; unsigned char b = ~a>>4+1; printf("b = %d\n",b); return 0;}这个是面试宝典上的一个题,马上要面试了重新复习下基础知识。答案是250.流程是这个样子的:a先进行整形提升变成0x000000A5-------->进行取反0xFFFFFF5A------->由于“+”的优先级高于>>,所以直接右移5位 -----> 0x07FFFFFA ----->截断成1个字节0xFA,即250这里要注意的是
阅读全文
摘要:由于一直弄不清楚运算符的优先级,所以找了这么一篇文章过来学习本文仅适用于怎么也记不住运算符优先级顺序的人,已经记住了的就飘过吧~~估计很多初学C语言的人都会碰到这么一个问题:C运算符太多太复杂,优先级顺序难记,背了还是忘。那怎么办呢?在实际写程序的过程中倒还好,实在不知道哪个先哪个后,咱就给它加个括号,而且给程序中添加适当的括号也是非常推荐,值得表扬的,是一个很好的编程习惯。可是问题又来了,考试(比如说期末考试、等级考试。。)的时候出卷老师可不跟你来这套,他就是不用括号,然后就看着你得意地笑:小样,猜个答案吧……结果往往是以我们的失败而告终!像我标题所说的,如何快速、准确、轻松地记住C语言的运
阅读全文
摘要:C++中定义常量的途径:C中的#define预处理宏类型安全的全局const最小作用于enum一定不要在析构函数中执行一些可能抛出异常的动作智能指针智能指针的代码class U_Ptr{ friend class HasPtr; int *ip; size_t use; U_Ptr(int *p) : ip(p), use(1){} ~U_Ptr(){delete ip;}};class HasPtr{public: HasPtr(int *p, int i) : ptr(new U_Ptr(p)), val(i){} HasPtr(HasPtr co...
阅读全文
摘要:scanf函数声明形式:int scanf(char *format, ...);scanf函数从标准输入中读取字符序列,按照format中的格式说明对字符序列进行解释,并把结果保存在其余的参数中。当scanf函数扫描完其格式串,或者碰到某些输入无法与格式控制说明匹配的情况时,该函数终止,返回成功匹配并赋值的输入项的个数。这里有一个有意思的程序:#include int main(){ char str[80]; char str1[80]; char str2[80]; scanf("%s",str);/*此处输入:I love you! */ pri...
阅读全文
摘要:枚举是一个常量整型的列表,如enum boolean {NO, YES};则,第一个值为0,第二个值为1类型转换:自动转换:将“比较窄的”操作数转换为“比较宽的”操作数,且不丢失信息。当把较长的整数转换为较短的整数或char型时,超出的高位部分将被丢弃。强制类型转换只是生成一个指定类型的n值,n本身并没有改变,如sqrt((double)n);浮点数在内存中的表示:http://www.cnblogs.com/xkfz007/archive/2012/02/27/2370357.html浮点数二进制与十进制的转换:http://www.cnblogs.com/xkfz007/articles/
阅读全文

浙公网安备 33010602011771号