一、常量:
固定不变的量
两种表示方法:
1.字面量表示法
直接写值就是字面量常量
10;
20 + 10; //常量表达式
2.名字表示法
语法:
const 类型 名字 = 值;
例: const int num = 10;
num = 30; //会报错!
const int num; //完全可以,垃圾值
num = 40; //这样就会报错。
二、 变量:
值可以发生改变的量就叫变量
声明变量的方法:
1.在声明的就初始化
类型 变量名 = 值;
例:int num = 10;
num = 30; //不会报错,因为变量可以改变
2.先声明,后赋值
类型 变量;
变量 = 值;
int num;
num = 30;
变量的命名规范:
1.起名要有意义
2.只能以字母、下划线、美元符号开头,后面接任意的数字、字母、下划线、美元符号(Mac里面可以用中文)
3.不能用关键字作为变量名
4.遵守驼峰命名法:第一个单词的首字母小写,后面的每个单词首字母大写
printf的具体用法:
语法:
printf("格式化字符串",值列表);
常见的格式化控制符:
%d:要输出一个int类型的数据
%ld:要输出一个long类型的数据
%u:输出一个unsigned int类型的数据
%lu:输出一个unsigned long类型的数据
%f:要输出一个float类型的数据
%lf:要输出一个double类型的数据
%c:要输出一个char类型的数据
unsigned 修饰的代表无符号的一个整数,不能保存负数,只能存正数
unsigned 可以修饰float double吗?不可以!
unsigned 可以修饰char 吗? 可以! char本身就是正数
%d:
重点:
%0md:m代表占用多少位,不足位用0代替.
如果实际位数 >= m ,那么就以实际位数输出,不会添加任何的0
%md: m代表占用多少位,不足位用空格代替
如果实际位数 >= m ,那么就以实际位数输出
m为负数就代表在后面添加空格
%f:
重点:
%.nf:n代表保留小数点后几位。n是一个整数
例:如果要保留小数点后3位
%.3f
%m.nf: m代表一共多少列,n代表保留小数点后几位
m<实际位数 就按实际输出(以n为准)
不足位用空格代替
三、转义符:
改变原来某个字符的原来意义的符号就叫转义符
例:%d \n
所有的格式化控制符
\n:换行
\t:水平制表符 空格
\\:输出\
\":输出"
%%:输出%
四、scanf函数:
语法:scanf("格式化控制符",地址列表);
例:
scanf("%d",&int类型的变量);
scanf使用注意
1.可以同时接收多个输入:可以输入的时候以空格区分
2.如果想改变他们的输入方式,就在两个格式化控制符之间加符号,那么输入的时候也必须按这个格式来输入
3.最好不要输入一个数字后立刻接收输入字符
4.如果想用两句scanf来先接收一个数字,再接收一个字符,那么为了防止字符吸收到回车或空格,我们可以在格式化控制符之前加一个空格,或者把缓冲区里的字符全部吸收掉
5.如果scanf需要接收一个数字,那么不管你按多少次回车或者空格,都没用
scanf的原理:
1). 用户从控制台输入的数据是先存储在1个叫做缓冲区地方
2). 当scanf函数准备为变量赋值的时候.先看看缓冲区中有没有数据
如果缓冲区中没有合适的数据 才会暂停程序让用户从控制台输入
如果缓冲区中有合适的数据 直接将缓存区中的数据拿出来赋值给变量
五、算数运算符:
+:跟数学一样
-:跟数学一样
*:跟数学一样
/:如果两个操作数都是整数,那么结果一定是整数(就是数学中算得多少只取整数部分),如果操作数有一个是浮点数,那么结果一定是浮点数
%:就是取余数,什么叫余数?除不尽,余下的数就叫余数。
取余的正负性:只取决于左边的那个操作数是正还是负
取余不能用在浮点数
优先级:
有括号先算括号,先乘除后加减
如果同级:从左往右依次运算
复合运算符:
+=:在原来的值的基础上相加
-=:在原来的值的基础上相减
*=:在原来的值的基础上相乘
/=:在原来的值的基础上相除
%=:在原来的值的基础上取余
例: int num = 10;
num += 12;
num %= 12;
自增和自减:
++和--
在原来的值的基础上+1
不能对常量进行自增和自减
前缀的自增(自减)以及后缀的自增(自减)
前缀:先自增(自减)再参与运算
后缀:先用原来的值参与运算,后自增(自减)
补充:同时声明多个变量,用逗号隔开
int num1,num2; //int num1; int num2;
int num3=10,num4=20;
逗号表达式:
语法:
(表达式1,表达式2,………………表达式n);
语义:从左往右每个表达式都会执行,但是总体的表达式的值,只取最后一个表达式的结果