变量的作用域:一个变量可以使用的范围。
局部变量的作用域:只在声明该变量的大括号内,出了大括号就不是该变量的作用域了。
全局变量的作用域;整个工程 (在同一工程下其中一个源文件下全局定义一个变量,在其他的源文件也可以使用但是要声明用extern 列如:extern int a;
生命周期:变量的创建与销毁的时间段
局部变量的生命周期;(从创建这个变量开始/进入这个变量的作用域)(到离开这个变量的作用域
全局变量的生命周期;为整个程序的生命周期(因为全局变量的作用域为整个工程)
常量:
字面常量 | 数字常量,字符常量'a',字符串常量“abc” |
const常量 | 用const修饰一个常量使其变为一个常变量但事实上还是属于一个变量(具有常量属性:不可修改)( const int x=2;) |
define宏定义常量 | #define x 3;定义一个常量不可以修改并且可以放在main里面 也可以放在main外面 |
枚举常量 | 可以一一列举的常量,用枚举符enum ![]() |
字符串:用双引号括起来的一串字符。结尾含有一个隐藏的结束字符 对应%s
数组:一组同类型的字符 ( char arr[]="abc") 如果【】内没有内容则会根据其内容来初始化它(对应%s)(一个数组本身就代表了地址 就不用再加&)
区分 arr【】="abc” 与arr【】=['a','b','c']; printf(“%s”,arr)前者运行直接是abc而后面是abc与一串乱码(第二个数组空间中没有结束符而内存是连续的就会读取后面不知道的内容)
后者会一直读取直到读取到\0为止 但可以将arr[]={'A','B','C','\0'}就在空间中加一个\0可以顺利读出abc
strlen()是一个读取字符串长度的函数 其读取不包含结束符即\0 调用这个函数需要#include<string.h>头文件
转义字符
\t | 代表使用一次tab键即空格三次 如果要打印\t则需要在前面再加一个\号再次转义 | 用strlen算长度时为1 |
\? | 在连续使用问号时,防止他们被解析为三字母词如??)在某些编译器会被译为】但是如果改为\?\?)则可以顺利输出 | |
\' \" | 用于表示字符’ 在想打印‘时 如果写成printf(”%c“,’‘’)就会被识别为前两个单引号为一对不能打印处‘ 这是就要加入/’来转译 但如果为printf(”%s“,”‘“) ”’这两个就不会形成一对 | |
\\ | 用来表示一个双斜杠 | |
\a | 打印这个转义符 电脑会响一声 | |
\abc | 将八进制数转化为十进制数 使用时要加单引号 如果打印类型为%d则打印出的结果为转换为的十进制数 如果打印类型为%c 则 打印结果为转换为十进制后的数字对应的ascll码对应的字符 ( a b c 表示1到3个八进制数) | |
\xdd | dd表示1到两个16进制数 使用与上者相同 |
C中 /* */ | 不能嵌套 在该注释符中不能在含有注释符 含有的话将最近的算为一个注释 |
C++中为// | 方便 快捷键为ctrl 在按k在按c |
初识选择语句
if(条件){ 指令
}
else{指令
{
初识循环语句
函数
数组 arr[10]={1,2,3,4,5,6,7,8,9,10} [10]代表数组中有十个元素 但是每个元素的下标是依次从0开始的 要用这些数时 arr【】在方框内输入标来应用
如果定义数组里的数时大于数组内部的数(arr[5]={1,2,3})这叫未初始化数组 缺少的用零来代替
如果想要输出数组里的全部数 可以用循环语句来书写