当前位置 博文首页 > 绍德:C语言阶段——需要注意的小细节
?
持续更新。。。。。。。
?
?
?
?
?
1. ? ? ? int? a;
? ? ? 定义全局变量 ? ? ? ? ? ? ? ? 如果不给初值??? 系统自动给a赋0
?? 但定义局部变量时 ? ? ? ? ? ? 如果不给初值 ?? 就是一个随机值
?
?
2.scanf()函数 里? 别放多余的东西?? 就放一个标准输入格式符就好
??????????????????? 试一试:
??????????????????????????????? scanf("%f\n", &temp1);
??????????????????????????????? scanf("%lf\n", &temp2);
?????
?????????????????????就知道了
?
?
?
3.逗号表达式作为一个整体,从左到右逐个计算;它的值为最后一个表达式的值;
????逗号表达式的优先级在所有运算符中最低。
?
?
?
?
?
4.赋值表达式? =????*= ?? -= ?? /=????? 运算顺序是从右往左运算
?
? ? ? ? ? ? ? ? ? ? 例如? int temp = 2;? if( x= 2 * temp = 3 ) …… ? 首先算2 * temp 得常数 4, ? 4 = 3? 语法错误? x仍然没有赋值
优先级:! ?? 算术符 ? ? 关系符 ? ? ? ? && ? ? ?? || ? ? ? ?? 赋值 ? ? ? ? ? ? 逗号 ??
5.? ? 假设a 的初值为2 ? 运算完? a 的值为多少? ? ? a 为 2 原因: 第一个if ? 没有加 {} ? 没有标明作用域
?
?
?
?
?
6. ? Ubuntu启动出错? 启动不了? 可以试一下 删除下面两个文件夹
??
? ?? 至于为什么? 我不知道。。 ? 大家也可以评论告诉我。。。
?
?
?
?
?
7.? C语言中 ? ? ? ? 0 == '\0' == NULL ? ? ? !=????????? '0' == 48
?
?
?
?
?
8. ? '\n' sizeof('\n') 的结果为4? ==> 为什么? ?? '\n'? 字符型占用一个字节没错 ??
? ? ? 但是'\n'的值是整型的ASCAII值 10? 所以? sizeof(10)? 结果为 4
?
?
? ? ??sizeof() ? ? ? ? ? 虽然长得像函数 ? ? 但其实 ? ? ? ? ?? 是运算符
?
? ? ? typeof( '1' ) ?? 同理? 他代表的类型并不是char ? ? 而是 int? 原因就是函数
? ? ? 处理的时候把 ?? '1'? 转换成整型数字 49? 处理了
?
?
?
9.前置++ ? ?? 后置++
?
?
?
10.等价的表达式
?
?
?
?
11.数据在内存中的储存形式 ?? 整型 : ? 数据的补码存储 ? ? ? ? ?? 浮点型: ?? 数据的补码存储
?
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字符型:? 按字符的ASCII码存储 ? ?? 有疑问看第8点
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有符号:按数据的补码存储
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 无符号型:按数据的源码存储
? ? 有符号数据的表示 ? ? ? ? ? ? ?? 最小值在内存中的存储 符号位为 1 其他位为0
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 最大值在内存中的存储 符号位为 0 其他位为1
?
12. ? ? ?"\\\065a,\n"
? ? ? ? ? 字符串长度为? ? ? ? 5
分析下:"\\\065a,\n"第一个字符\\,第一个\表示转义,
第二个\代表该字符第二个字符\065,八进制表达(有点凑巧啊)
第三个字符a
第四个字符,
第五个字符\n
所以答案是5
?
13.
%s打印字符串 ?后接地址 ? ? %c打印字符 ?接值 ? ? ? ??
?? ??? ??? ?char ch[] = "123456"; ? //系统给常量ch指向的变量数组? 分配内存空间存 字符串"123456"?
?? ??? ??? ?char *str = "abcdef";?? ?//系统给变量str 分配内存空间存 常量字符串"123456"的地址
?? ??? ??? ?注意:变量的值可以变 ? 但是常量的值不可改变
?? ??? ??? ??? ? ?也就是说 变量数组 的值"123456"可以变 ? ? ? ? ? ? ? ? ? ? ?
?? ??? ??? ??? ??? ??? ? ? 变量str的值(存放的地址)可以变成另外的地址
? ? ? ? ? ? ? ? ? 但是常量指针ch的指向不可更改 ?? 常量字符串"abcdef"不可更改
?
14.
?
15.
?
16.
?
17.
?
18.
?
19.
?
20.
?
cs