1.注释
# c语言中有两种注释
// c语言中有两种注释 单行注释
/*c语言中有两种注释*/ 多行注释
# 从写到运行有四步
gcc -E test.c -o test.i
gcc -S test.i -o test.s
gcc -C test.s -o test.o
gcc test.o
2. 数据的类型
1. 基本的数据类型
1. 字母: char
2. 数字;
1. 整数 : short int long
2. 浮点类型: (带有小数的) float (单精度) double(双精度)
3. 占用字节数的大小的测量方法:
sizef()
1. sizef(int) =====> 4
char ==>1
short ==>1
int ==>4
long ==>8
float ==>4
double ==>8
3. c 程序结构
C Hello World
实例C 程序主要包括以下部分:
- 预处理器指令
- 函数
- 变量
- 语句 & 表达式
- 注释
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
return 0;
}
-
程序的第一行 #include <stdio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。
-
下一行 int main() 是主函数,程序从这里开始执行。
-
下一行 /…/ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。
-
下一行 printf(…) 是 C 中另一个可用的函数,会在屏幕上显示消息 “Hello, World!”。
-
下一行 return 0; 终止 main() 函数,并返回值 0。
4. c 语言 常量和变量
1. 常量: 在程序的运行过程中, 不能发生变化的量, 就叫做常量
'm'
123
3.14
3.14f
2. 可以发生变量的量
用之前一定要先进行定义
数据类型 变量的名字;
int age;
int a;
int b;
int c;
int a,b,c;
// 数据类型:
// char ---- > 存放字母
'a'
// 整数
// int
// short
// long
// 小数
// float
3.14f;
// double
3.45;
scanf 从键盘中获取数据
int num1;
int num2;
char sex;
scanf("/%d%d", &num1, &num2);
# scanf 变量,必须加 &
printf 输出数据
int a,b,c;
char sex;
printf("%d %d %d %c",a,b,c,sex);
5. 运算符
+ - * / %
int num;
num = 10/3; 结果 3.333333
4%10; //4
3%10;// 3
赋值运算符
= 通俗的讲: 把右边的结果先计算出来,然后赋值给左边的变量
100=200+3543;
复合赋值运算符
num+=3;// 等价于 num=num+3;
num+=1;// 等价于 num=num+1;
自增/自减
++
num++;
++num;// 完成对变量本身+1的有: num++/++num/num+=1/num=num+1
num=3;
//result = ++num;// num=result=4
result = num++;//num=4,result = 3
逗号运算符
,
a=11,b=22+a,c=33+b;
关系运算符
> < >= <= == !=
200<=200;
逻辑运算符
&& || !
a>b && b>c;
10 && 0;// 结果 0
6.类型转换
-
强制类型转换
-
自动类型转换
自增
#include <stdio.h>
int main(int argc, const char * argv[]) {
int num=2;
// num = num+1;
// num+=1;
// num++;
// ++num;
int result;
result = num++; //num=3, result = 2
result = ++num; //num=3, result = 3 // 因为++ 在 age 的前面, 所以 先把 age 的值加一 , 再赋值给 result
return 0;
}
7.sizeof运算符
计算这个类型,在数据内存的大小
8.c语言中提供了3种逻辑运算符:
9.位运算
左移
<< 右移
10.三目运算符
// 三目运算符 表达式1 ? 表达式2 : 表达式3;
int age=30;
age>30 ? printf("你老了") : printf("你还年轻");
11.if循环
基本的 if 方法
if(){
}
if(表达式1){
表达式1 结果为真的情况下,执行的语句
} else {
表达式1 结果为假的情况下,执行的语句
}
if 嵌套
if(表达式1){
if(){
} else {
}
}
if(表达式1){
} else {
if(){
} else {
}
}
if 的高级用法
if(表达式1){
表达式1 结果为真的时候,执行的代码
} else if(表达式2){
表达式2 结果为真的时候,执行的代码
} else if(表达式3){
表达式3 结果为真的时候,执行的代码
} else {
表达式1/2/3 都不满足条件的情况下,才会执行的代码
}
switch 的用法:
switch(num) {
case 1:printf();break;
case 2:printf();break;
case 3:printf();break;
default:printf();
}
// case 穿透
unsigned 只能存正数
unsigned int num1 = 11000 // 只能存正数
rewind(stdin) // 解决 连续 输入 sanf()的问题
课堂笔记
02-【掌握】while 循环的介绍和基本格式
while(表达式1){
表达式2;
}
当 条件满足后,才会执行 循环体中的语句
04-【掌握】do-while循环介绍及语法格式
do{
表达式1
}while(表达式2);
如果说 while 循环是先判断在执行的话,那么 do-while 循环这是 先执行,然后再判断;注意一下,即时条件不满足,那么 do-while 也会执行一次
06-【掌握】for循环结构及执行过程
for( 表达式1 ; 表达式2; 表达式3 ){
表达式4;
}
先执行一次 表达式1,然后 判断表达式2的结果是否为真,如果为真,那么久执行 循环体中的语句,然后 再执行 表达式3
当表达式3执行完后 会执行表达式2--->表达式4--->表达式3
当执行表达式3时,如果结果为假,那么就代表着 for 循环结束
07-【掌握】for循环嵌套
类似于 if 的嵌套, for 循环也是可以嵌套的
for( 表达式1 ; 表达式2; 表达式3 ){
for( 表达式11 ; 表达式12; 表达式13 ){
表达式14;
}
}
注意:除了 for 循环可以嵌套以外, while/do-while 循环都可以嵌套
10-【掌握】break与continue
都可以用来结束循环,但是方式是不一样的
break 是 结束整个循环
continue 是 结束本次循环体中 continue 接下来的代码,从而执行下一次的循环
如果在有以下 嵌套的 for 循环,则 break 会仅仅对 挨着近的那个 for 循环提作用
// for 循环1
for(){
// for 循环2
for(){
break;//只会对 for 循环2起作用
}
}