关于长度太长换行
如果是宏定义,换行需要加“\”,如果是数组换行,加不加都可以
关于单个数组元素传递
等价于一个数值传递,不影响原本数组的变量
关于头文件以及函数
<>所表示的头文件,属于系统包含
“”所表示的头文件,属于用户自己定义
main 有且仅有一个,也称为入口函数
main 里面定义的变量是局部变量:不影响其他范围定义时,重命名冲突,命名灵活,使用方便
被调函数定义的变量也是局部变量,仅止于被调函数
被调函数退出时,被调函数定义的变量释放
在main 外面和被调函数外面定义的变量为全局变量:从定义的地方开始到文件结束之间所包含的函数都可以使用,如上面函数需要使用,可在使用前用extern 【全局变量名】 声明才可使用
函数之间是平行的,只有调用关系
变量存储方式和生存期
动态变量和静态变量
静态存储区:全局变量、静态局部变量 可以读写
动态存储区:函数形象、函数内定义的变量、函数调用时保护现场和返回地址 可以读写
存储类别
局部自动变量(auto):没有static修饰的变量都是自动变量
局部静态变量(static):static只赋值一次,然后静态变量一直保存,不可赋予变量值给静态变量
#include <stdio.h>
void coo(int i);
int main()
{
int i=0;
for(i=0;i<5;i++)
{
coo(i);
}
return 0;
}
void coo(int i)
{
static a=0;
a++;
printf("%d ",a);
}
结果
1 2 3 4 5
寄存器变量(register):当某些变量使用特别频繁时,编译器会自动优化为寄存器变量,存储在cpu中的寄存器中
全局变量(suto&static):存放在静态存储区
宏定义与const
#include <stdio.h>
#define A 10
int main()
{
const int a=0; //a为定值,后面不可重新赋值。
printf("%d\n",a);
a+=5; //错误
A+=5; //错误
return 0;
}
宏定义与const定义的值均不可修改