![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C专家编程
housansan
这个作者很懒,什么都没留下…
展开
-
安静的改变
C中 类型转换 当执行算术运算时,操作数如果类型不同,就会发生转换,数据类型向精度更高,长度更长的方向转换。 eg: int d = -1; unsigned int t = 5; if (d < t) { printf("...\n"); //这里永远不会执行因为-1变成了unsigned 结果最大 }原创 2012-05-30 15:04:29 · 365 阅读 · 0 评论 -
空格
"\" 转义字符 \newline可用于延续当前行,但是如果\ newline 中间有空格,那么这个错误很难发现,因为结果将是(\ ) 所以尽量少用 z = y+++x; //z = y++ +x;原创 2012-05-31 10:07:22 · 359 阅读 · 0 评论 -
C陷阱与缺陷总结
1. 词法分析 贪心法:尽可能的多读字符 符号中间不应有空格 y = x/*p; /*p …/*/ y = x; 整型常量,第一个字符加0是为八进制 x = 026; // x = 32d 2. 语法分析 运算符优先级 操作符 [] () -> 单目 (从右到左) 双目 (算术、移位、关系、逻辑 ) 三目 赋值 (自右向左) 逗号原创 2012-07-06 16:37:48 · 417 阅读 · 0 评论 -
++i 和 i++ 一些区别
++x; //先将x的地址里面的值加一然后放到寄存器中 x++; //先将x地址里面的值放到寄存器中然后x再加一 x += 1; arr[i++] += 1; //arr[i] = arr[i] + 1; ++i; frotz[--j + i++] += --y 等同于 --j; --y; frotz[j+i] = frotz[j+i] + y; ++i;原创 2012-06-27 16:03:00 · 413 阅读 · 0 评论 -
char *p 与 extern char*p区别
1. 首先要明白数组和指针是怎么访问的 1. 数组访问形式 char a[] = "abcdefg"; c = a[i]; //i=0~6 编译器符号表示一个地址 假设 a 值 9980 运行时 取i的值 取地址(9980+i)的内容 2. 指针访问形式 char *p; char c = *p;原创 2012-06-08 15:32:25 · 1828 阅读 · 2 评论