【学习笔记】C语言:做题注意事项(仅做题)

由于太久不学C语言了,一些东西都忘完了,写一些做题时遇到的注意事项

1、

8进制定义为 int x = 010;即前面加个0 ;

16进制为int x = 0x10;

没有二进制的定义规范;

2、for(;;)在无约束条件时,默认为ture

3、转义字符有三种形式:

1. 8进制 \加8进制数字
2. 16进制 \x加16进制数字
3. 特殊转义字符 \加有特殊意义的符号

在使用数学转义时,是获取其相对应的ASCII编码

4、对于数组的定义,只要不超过数组的上限,随意写内容 越靠前的维数代表的{}越内 注意可以缺维写内部数据

eg:int y[1][4] = {1,2,3,4}

5、&&与&是有很大区别的(||与|同理),

1.&的优先级要比&&高

2.&&只要第一个前面的为0,则直接跳过后面的计算,&则会把所有都计算完

3.||只要第一个为1,则直接跳过后面的运输,|则会把所有都计算完

6、关于union共用体的注意项

1.共用体并非以前理解的静态对象,而是动态的

2.共用体中的内存是被所有变量共用的,即改变共用体任意一个成员都是在改变所有成员

3.共用体与结构体中 每个变量的偏移地址起始 应该是 其中最大变量类型大小的值,所以共用体与结构体的大小也应该是 最大变量类型大小 的整数倍

7、关于变量的存储类型

1.auto类型是指自动存储,会在当前语句块执行结束后自动释放,一般定义在函数与语句块之内的变量都遵循该原则(即默认带auto)但函数外的全局变量加上auto不知道有什么用(也许是以文件为单位来释放内存?)

2.register类型是将变量放入寄存器中来达到快速访问的目的,由于将变量放置在寄存器中,所以register有很多限制,首先不能定义过多的register型变量(因为寄存器有限),然后register必须是寄存器(CPU)所能支持的类型(非自己定义的)然后,register的长度必须在(0-FFFF)之间(不能使用double long),不能被修饰为静态变量,没有地址(因为在寄存器中)

3.extern是函数的隐含存储类别,即不做设置的话,每个函数都是extern的,他的作用是声明函数全局,一般的用处可能是在一些对象中使用?

8、逗号是个运算符,其返回的结果是最后一个表达式 a = (b,c,d,e);结果a=e,其优先级是所有运算符中最低的

9、函数在未加显式声明的时候,有个隐含类型int

C语言编程注意事项 1. 每个程序中一定包含main()函数, 尽管C语言中对函数命名没有限制。 2. printf函数永远不会自动换行, 只能用\n来实现, 回车键进行的换行在编译中会出现错误信息。 3. 在vs2008等平台中编译、测试要加 system("pause"); 来暂停dos自动退出引起的printf无法显示。 4. 所有自定义变量必须声明才能使用。 5. 每行一般只写一条语句, 在运算符两边加一个空格, 便于阅读。 6. 整数除法将会自动舍位, 不进行四舍五入的操作。 7. for(初始化部分;条件部分;增长部分) 比while 更适用于初始化和增长步长都是单条语句的情况。 8. 使用 #define 名字替换文本对部分"幻数" 赋予意义便于阅读 #define结尾无需;号来结束。 9. EOF(end of file)表示没有字符输入时定义在stdio.h 头文件中 EOF不等于\n 换行等。 10. 由于!= 的优先级大于 = ,因此如果对判断中存在变量赋值时 应对赋值加() 例如: while((c = getchar()) != EOF)。 11. getchar() 用于用户输入直至键入回车键。 12. 变量名以字母和数字组成, (下划线"_"被默认为字符, 以下划线为首写字母的为库类变量名), 变量常以小写字母开头,内部变量名前31位有效, 外部变量名至少前6位保持唯一性。 13.在C语言中是区分字母大小写的。 14. 一个字符常量为一个整数, 用''单引号括起来。例如: '0' 为48, 它与0没有任何关系。 15. ANSI C语言的转义符: \a 响铃符; \b 回退符; \f 换页符; \n 换行符; \r 回车符; \t 横向制表符 ; \v 纵向制表符; \\ 反斜杠; \? 问号; \' 单引号; \" 双引号; \ooo 八进制数; \xhh 十六进制数; '\0' 表示0, 即(null)。 16. 'x'与"x"的区别: 'x'表示一个整数, 字母x在其字符集中对应的数值, "x"表示包含一个字符x 以及一个结束符'\0'。 17. const在声明变量中起限制作用, 该限定变量的值不能被修改。 18. %运算符不能应用于float或double类型。 19. char类型转换为int型时, 因为无法判断它是signed还是unsigned,这样其结果有可能为负数, 所以转换时尽量指定signed和unsigned限制符。 20. ++i与i++ 的不同之处: ++i是先 +1再使用i, i++ 是先使用i再 +1。 21. 三元运算符"?:" 第一个表达式的括号不是必须的, 但是由于三元表达式的优先级非常低, 因此我们还是将第一个表达式用()括起来以便于阅读和理解。 22. C语言中可以使用递归 (即函数调用自身函数), 这样做并不节省储存空间也不加快执行速度, 只是使程序紧凑便于理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值