1.类型限定符
① extern 声明
②const 定义一个常量
③volatile 防止编译器优化代码
④register 定义寄存器变量(直接放到了寄存器中,没有内存地址,但是会浪费寄存器空间)
2.字符串常量
(1)%s 占位符 表示输出一个字符串 遇到 \0 则停止
字符串的结尾都是以\0(数字0)结束
#include<stdio.h>
void main()
{
char a = 'a';
char *b = "hello\0 world";
char c[11] = "hello world";
printf("%c\n", a);
printf("%s\n", b);
printf("%s\n", c);
}
执行结果:
(2)printf 和 putchar
putchar() 输出单个字符;对应ASCII码值的范围,或者转义字符
putchar(97);
putchar('\n');
(3)scanf 和 getchar
getchar() 接受字符,但是只能接受一个字符,多输入的内容数据将会丢失
3.运算符
(1)算术运算符
在 除法和取余 0不能作为除数,取余操作只能对整形取余
++a 先自增然后结合表达式计算;a++是先进行表达式计算,然后在进行自增
存在二义性,尽量++a和a++分开写
(2)赋值运算符
+=;=
(3)比较运算符
==
(4)逻辑运算符
与 && 或 || 非!
(5)运算符的优先级
1. | () | |
2. | ++ -- ! sizeof | 单目运算符 |
3. | * / % | |
4. | + - | |
5. | > >= < <= | |
6. | == != | |
7. | && | |
8. | || | |
9. | = += -= *= /= | |
10. | , | 逗号运算符 |
逗号运算符
int a =10;
int b =20;
int c =(a,b);
printf("%d",c);
//结果为 20
逗号运算符 会将逗号后的变量或者表达式的值 赋值给 c变量
4.类型转换
(1)自动转换(隐式转换)
遵循一定的规则,由编译系统自动完成
(2)强制类型转换
把表达式的运算结果强制转化成需要的数据类型
5.选择结构
(1)if语句
(2)三目运算符
表达式1?表达式2:表达式3
#define Max(a,b) (a)>(b)?(a):(b) 宏定义表达式
(3)switch语句
switch()
{
case 1:
break;
case 2:
break;
...
defaule:
break;
}
6.循环结构
(1)while 循环
先进行条件判断,在执行代码体;
(2)do while 循环
先执行一次,在开始进行条件判断;
int i = 0;
//执行到数据溢出,变为负数,然后变为0时,停止执行
do
{
printf("%d\n",i);
}while(i)
//第一次判断则停止
while(i)
{
printf("%d",i);
}
(3)for 语句
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 生成10以内的随机数
void main()
{
srand((unsigned int)time(NULL));
for (int i = 0; i < 10; i++)
{
int value = rand() % 10;
printf("%d\n", value);
}
}
(4)循环嵌套
电子时钟
system("cls"); 清屏 sleep() 暂停睡眠
九九乘法表