一:printf("%s %c%d",&a,&b) ;注意%S与%c之间要有空格。
printf先进入缓冲区,在打印。\n起到刷新缓冲区的作用。
二:对动态问题的编程技巧:一画图,找到相关变量。二:分析位移长度和相关变量的关系。三:利用数组存我们要用的变量输出
四:用指针指向我们要用字符串并输出,或者改变字符串(*p++=*s++);四:取动态运动 的极限分析;
三:include " "在当前目录找头文件;include《》在系统指定目录找头文件
四:define函数
#include <stdio.h>
#define out printf("helloword\n")
#define p(s) printf("%s\n",s)//起到替换作用,内部无需定义变量类型
#define sqr(x) x*x//a+b*a+b
#define spz(y) (y)*(y)//(a+b)*(a+b)
int main()
{
int a=1,b=3,i,j;
out;
p("helo");
i= sqr(a+b);
j= spz(a+b);//类似调用返回值
printf("%d %d\n",i,j);
}
自定义函数与宏函数的区别:
宏函数优点:宏函数节省空间,缺点浪费时间在预编译上,没有语法检测不安全;
自定义函数优点:有语法检查,缺点:浪费空间;
五:static修饰局部变量
static作用于局部变量时,改变其生命周期,直到程序结束才会被释放,不会因为函数调用结束,值被清空。
注意:函数调用最后释放栈空间,被static修饰局部变量放在数据段。
#include <stdio.h>
void add()
{
static int a =0;//不加static之前输出11111,加了之后输出1 2 3 4 5不会被置0;
a++;
printf("%d\n",a);
}
int main()
{
int i;
for(i=0;i<5;i++)
{
add()
}
}