标识符:
用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等
标识符命名规范:
1.由字母大小写,数字以及下划线组成
2.严格区分大小写
3.不能以数字开头
4.不能以关键字命名
变量:
变量的作用域:
从定义变量的那行开始,直到函数结束
根据变量的作用域,可以分为:
局部变量:
1> 定义:在函数(代码块)内部定义的变量(包括函数的形参)
2> 作用域:从定义变量的那一行开始,一直到代码块结束
3> 生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收
4> 没有固定的初始值
全局变量:
1> 定义:在函数外面定义的变量
2> 作用域:从定义变量的那一行开始,一直到文件结尾(能被后面的所有函数共享)
3> 生命周期:程序一启动就会分配存储空间,程序退出时才会被销毁
4> 默认的初始值就是0
变量的内存分析:
1.内存寻址由大到小,优先分配内存地址比较大的字节给变量
2.变量越先定义,内存地址就越大
3.取得变量的地址:&变量名
4.输出地址:%p
5.一个变量一定先进行初始化,才能使用
函数:
什么情况下定义函数:添加一个常用的新功能
函数的定义格式:
返回值类型 函数名(形式参数列表)
{
函数体
}
函数注意点:
1.默认情况下,不允许有函数的名称一样
2.函数不能嵌套定义
3.函数不能重复定义,但是可以重复声明
4.如果有函数的声明,没有函数的定义
1> 编译可以通过,因为编译器只会检测语法合不合理,并不会检测函数有没有定义
2> 链接报错,因为链接的时候会检测函数是否定义
返回值注意点:
1> void代表没有返回值
2> 如果没有明确说明返回值类型,默认是返回int类型
3> 就算明确声明了返回值类型,也可以不返回任何值
参数注意点:
1.形式参数:定义函数时函数名后面中的参数,简称形参
2.实际参数:调用函数式传入的具体数据,简称实参
3.实参个数必须等于形参个数
4.函数体内部不能定义和形参一样的变量
5.如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参的值
6.一个函数可以没有形参,也可以有无限多个形参
return的作用:
1> 退出函数
2> 返回一个具体值给函数调用者
scanf函数:
是一个阻塞式的函数,等待用户输入
scanf中不能写\n:
int a;
scanf("%d\n", &a); // 错误写法
代码实例:
scanf("%d", &number);