掘友等级
菜鸟,只能分享基础技术知识.
打着学习的旗号,购买了各式各样的电子产品。
马上中年危机了,还没实现财务自由。 获得徽章 8
这段代码输出什么?#include <stdio.h>
#define SQ(y) ((y)*(y))
int main(){
int i=1;
while(i<=5){
printf("%d^2 = %d\n", i, SQ(i++));
}
return 0;
}
带参宏定义中,形参之间可以出现空格,但是宏名和形参列表之间不能有空格出现。例如#define MAX(a,b) (a>b)?a:b
#define 叫做宏定义命令,它也是C语言预处理命令的一种。
我们在使用 printf()、puts()、scanf() 等函数时引入了 stdio.h 头文件,很多初学者认为 stdio.h 中包含了函数定义(也就是函数体),只要有了头文件就能运行,其实不然,头文件中包含的都是函数声明,而不是函数定义,函数定义都放在了其它的源文件中,这些源文件已经提前编译好了,并以动态链接库或者静态链接库的形式存在,只有头文件没有系统库的话,在链接阶段就会报错,程序根本不能运行。
fopen中的模式:(a+x)是非法的。其他的意思:w : 不可读, 可写, 可以不存在, 若存在则必会擦掉原有内容从头写, 文件指针无效
a : 不可读, 可写, 可以不存在, 必不能修改原有内容, 只能在结尾追加写, 文件指针无效
w+ : 可读可写, 可以不存在, 必会擦掉原有内容从头写, 文件指针只对读有效 (写操作会将文件指针移动到文件尾)
a+ : 可读可写, 可以不存在, 必不能修改原有内容, 只能在结尾追加写, 文件指针只对读有效 (写操作会将文件指针移动到文件尾)
x 谨慎写 写模式打开文件,从文件头开始写。如果文件已经存在,该文件将不会被打开,fopen()函数将返
回false
x+ 谨慎写 读/写模式打开文件,从文件头开始写。如果文件已经存在,该文件将不会被打开,fopen()函数将
返回false,
数组长度:
在 C89 中,必须使用常量表达式指明数组长度;也就是说,数组长度中不能包含变量,不管该变量有没有初始化。
而在 C99 中,可以使用变量指明数组长度。
下一页