一、常量
1> 在计算机中不可被修改的值,我们称之为常量,常量存放在进程的全局区的 .ro 段
2> 常量分为:整数常量、小数常量、字符常量、字符串常量、地址常量
整数常量(4字节):不可更改的整数值,默认是int类型,例如 1314 520 666。。。 小数常量(8字节):不能更改的小数值,默认是double类型,例如 3.14 12.5678 。。。 字符常量(1字节):由单引号括起来的一个字符,可以包含转义字符;'a' '3' '\n' '\t' '\012' 。。。 字符串常量(不固定):由双引号括起来的0个或多个字符,并且以'\0'作为结束标识; "" "hqyj" " " 地址常量:不可更改的地址值;NULL 数组名。。。
3> 可以使用预处理指令定义出宏标识常量,注意,所有的宏都是常量
#define PI 3.14 #undef PI // 取消define #define PI 1234 // 重新定义
二、变量
1、为了实现泛型编程,试图将程序的功能提取出来,而不是非常依赖具体的某些数据。
2、在程序执行过程中,可以被更改的量称为变量
3、变量的本质:数据存储在内存空间中,标识内存空间的量我们使用的是指针,但是,比较难记,为了方便起见,给内存空间起的别名
变量的定义格式:存储类型 数据类型 变量名;
1、存储类型:常用的存储类型有五种 auto:自动类型,也是默认类型,在栈区申请,随着所在函数结束空间自动释放 static:静态类型,在全局区(静态区)申请,不会随着所在的函数结束而释放,会随着整个程序的结束而结束 extern:外部变量,可以访问其他文件中的全局变量(非静态全局变量),可以在局部使用全局变量 const:给变量增加常属性,不能通过该变量进行内存空间值的更改 register:寄存器变量,存储在cpu的寄存器中,而且不能取地址运算,能够提高运算效率(底层接触) volatile:防止内存优化的,例如在多线程编程中,一个线程将全局变量的值改变了,另一个线程正常会跟着改变,加了该关键字后,可以防止优化(底层接触) 2、数据类型:之前提的数据类型部分,可以是基本数据类型,也可以是构造数据类型、指针类型、空类型 3、变量名:要遵循标识符的命名规则 命名规则: (1)、只能由字母、数字、下划线组成 (2)、不能由数字开头 (3)、不能使用关键字:系统已经保留的具体特殊意义的单词,全部都是些小写 (4)、严格区分大小写;例如apple和Apple是两个不同的标识符 (5)、最好做到见名知意:大驼峰命名(组成标识符的每个单词首字母都大写:MyName)和小驼峰命名(第一个单词全部小写,其余每个单词首字母大写:myName) 关键字: 1. auto 2. break 3. case 4. char 5. const 6. continue 7. default 8.do 9. double 10. else 11. enum 12. extern 13. float 14. for 15. goto 16. if 17. int 18. long 19. register 20. return 21. short 22. signed 23. sizeof 24. static 25. struct 26. switch 27. typedef 28. union 29. unsigned 30. void 31. volatile 32. while
变量的使用(初始化和赋值的区别)
1、初始化:定义变量的同时顺便给初始值 int num = 520; 2、赋值:对变量重新更改内存中的数据 int num; //定义变量 num = 520; //赋值
三、运算符优先级
四、小练习
将一个数字,翻转:1234567 => 7654321
int main(int argc, const char *argv[])
{
int num = 1234567;
int newvalue = 0;
do {
newvalue = newvalue *10 + num%10;
num = num/10;
} while(num != 0);
printf("%d\n",newvalue);
return 0;
}
五、流程控制语句
1、三大控制结构
顺序结构:程序自上而下运行
选择结构:根据条件判断实现的选择
循环结构:重复的执行同一块代码,则选用循环结构
1.1选择结构
1.单分支选择结构 if(表达式) { C语句; } 2.双分支选择结构 if(表达式) { C语句1; } else { C语句2; } 3.多分支选择结构 if(表达式1) { C语句1; } else if(表达式2) { C语句2; } else if(表达式3) { C语句3; } ... else { C语句n; }
4.switch switch(表达式) { case 常量表达式1:C语句1;break; case 常量表达式2:C语句2;break; case 常量表达式3:C语句3;break; ... default:C语句n;break; }
1.2循环结构
while(表达式2) { 循环体; 表达式3; }
do { 循环体; 表达式3; }while(表达式2);
for(表达式1;表达式2;表达式3) { 循环体 }
goto 标识符; 标识符: 1.标识符:满足命名规范即可
i.break break: 退出 中断 使用场景:所有循环(for\while\do..while),switch 功能:退出一层循环 注意:break不可以单独使用在if语句中 ii.continue continue:继续 使用场景:所有循环(while\do..while\for) 功能:退出本次循环,进入下次循环 iii.goto 无条件跳转语句 iv.return return: 返回 结束函数 格式: return 表达式; return(表达式)