Views: 4
学习:黑马程序员视频
C语言简介
C语言:1978年1月1日美国贝尔实验室推出的一门非常哇塞计算机语言
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言
C语言之父:丹尼斯·里奇
C语言能做什么:操作系统、驱动开发、引擎开发、游戏开发、嵌入式开发等
https://pan.baidu.com/s/1jKcbFZ933WFDnhM9OgvIDQ?pwd=c19f
提取码:c19f
hello word
标准的输入输出StandardInputandoutput
#include<stdio.h>//预处理,程序在运行之前,需要提前做的事情
int main()//主入口
{
//输出语句,小括号里面是输出内容
printf("Hello World!");
/*return:程序结束了
0:程序是正常结束
这里的0,需要跟上面的int呼应起来*/
return 0;
}
C语言完整的执行流程分析
编写:.c
编译:把操作系统看不懂的内容翻译成0和1 .obj
链接/连接:
和.obj
.h
组合起来成为.exe
(可执行文件)
运行:.exe
文件
注释
单行注释://
多行注释:/*…*/
注释快捷键:ctrl+K,Ctrl+C Ctrl+/
取消快捷键:ctrl+K,Ctrl+U Ctrl+/
注释擦除:注释的内容,不参与运行
注释的嵌套:最好不要嵌套
关键字
关键字:被C语言赋予了特定涵义的英文单词
关键字的特点:
关键字的字母全部小写
常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观
常量
常量类型 | 说明 | 举例 |
整型常量 | 正数、负数、0 | 36,78(计算展示) |
实型常量 | 所有带小数点的数字 | 89.9,78.0 |
字符常量 | 单引号引起来的字母、数字、英文符号(只能写一个) | ‘a’,’h’,’1′,’ ‘ |
字符串常量 | 双引号引起来(想写什么写什么) | “你好”,”gy”,”123″(展示),”” |
''
语法错误
扩展1:实型常量小数点前后为0,可以省略
扩展2:科学计数法是实型常量,但是要写E
输出常量
printf(参数1,参数2);
输出语句
参数1必填:输出内容的最终样式以字符串的形式体现
参数2选填:填补的内容
格式控制符 | 说明 |
整型 | %d |
实型 | %f |
字符 | %c |
字符串 | %s |
换行输出
操作系统 | 换行符 |
windows | \r: 回到行首\n: 到下一行 |
mac | \r |
Linux | \n |
变量
相当于一个盒子
先定义后赋值
数据类型 变量名;
int a;
数据类型 :为盒子中存储的数据,加入类型【限制】整数?小数?…
变量名:为盒子起的名字
分号:语句的结束
变量的注意事项
只能存一个值
变量名不允许重复定义
一条语句可以定义多个变量
变量在使用之前一定要进行赋值
变量的作用域范围
计算机的存储规则
在计算机中,任意数据都是以二进制的形式来存储的
三原色小结
计算机中的颜色采用光学三原色
分别为:红绿蓝,也叫RGB
可以写成十进制形式。(255,255,255)
进制在代码中怎么书写?
二进制:由0和1组成,代码中以0b开头
十进制:由0~9组成,前面不加任何前缀
八进制:由0~7组成,代码中以0开头
十六进制:由0~9还有a~f组成,代码中以0x开头
任意进制转十进制小结
公式:系数*基数的权次幂 相加
系数:就是每一位上的数
基数:当前进制数权 :从右往左,依次为012345……
十进制转任意进制小结
除基取余法
不断的除以基数(几进制,基数就是几)得到余数直到商为0,再将余数倒着拼起来即可
数据类型
C语言中的数据类型的作用
作用1:变量中能存储什么类型的数据
作用2:存储空间的大小
字节
1024字节=1KB
1024KB =1MB
1024MB =1GB
1024GB=1TB
整数
整数的数据类型分为:short、int、long、long long
不同的数据类型所表示范围和内存大小都不一样,由编译器来决定的,可以用sizeof来确定会遵守一个原则:short<=int<=long <= long long
long c=数字+L
printf("%ld\n",c);
long long c=数字+LL printf("%lld\n",c);
利用sizeof测量每一种数据类型占用多少字节
sizeof(变量名/数据类型)
printf("%zu\n",sizeof(short));
signed
有符号整数 正数 负数
unsigned
无符号整数 正数
小数
小数的数据类型分为:float、double
不同的数据类型所表示范围和内存大小都不一样,由编译器来决定的,可以用sizeof来确定float(4字节)double(8字节)
小数的取值范围比整数的要大
C语言中的小数默认double类型的
不可以和unsigned
组合,unsigned
只能跟整数类型组合
//float 单精度小数(精确度小数点后6位)windows占4个字节(38位)
float a=3.14F;
printf("%.2f\n",a);
//double 双精度小数(精确度小数点后15位)windows占8个字节 (308位)
double b=1.78;
printf("%.2lf\n",b);
字符
char %c 取值范围ASCII码表中所有的内容 windows1个字节
标识符
标识符:代码中所有我们自己起的名字。
比如变量名、函数名等。
命名规则 — 硬性要求
由数字、字母、下划线(_)组成
区分大小写
不能以数字开头
不能是关键字
命名规则 — 软性建议
用英文单词,见名知意
变量名:全部小写
代码文件名:全部小写,单词之间用下划线隔开,开头可以用数字
键盘录入scanf
scanf,是scanner format的缩写,是C语言提供的一个数。必须有&
取地址符
作用:获取用户在键盘上输入的数据,并赋值给变量
字符串变量的定义方式:
数据类型 变量名[大小]=字符串;
char str[内存占用大小]="aaa"
内存占用大小的计算方式:英文:1个字母,符号,数字占用一个字节
中文:在vs或者vc中,默认情况下,一个中文占用
两个字节
结束标记:1个字节
键盘录入多个数据
设置源文件右键属性
把_CRT_SECURE_NO_WARNINGS
加进去
#define _CRT_SECURE_NO_WARNINGS//或者加头文件
#include <stdio.h>
int main() {
int num1,num2;
// 从用户那里读取两个整数
printf("请输入两个数字: ");
scanf("%d %d", &num1, &num2);
//多个占位符空格分开,变量和占位符一一对应,取地址符一定不能落下!!!
// 计算并输出结果
printf("num1 + num2 = %d\n", num1 + num2);
return 0;
}
算数运算符
算术运算符 | + – * / %(取余) |
自增自减运算符 | ++ — |
赋值运算符 | = += -= *= /= %= |
关系运算符 | == != > >= < >= |
逻辑运算符 | ! && || |
三元运算符 | a>b?a:b |
1.整数计算,结果一定是整数
2.小数计算,结果一定是小数
3. 整数和小数计算,结果一定是小数
4. 小数直接参与运算,结果有可能不精确
5.除法不能除0
6.取余运算数据必须为整数
7.获取余数的正负,和第一个数字保持一致
8.取余不能除9
隐式转换
计算时,数据类型不一样不能直接运算,需要转成一样的,才能运算
把一个取值范围小的,转成取值范围大的
int转bool非0为true,0为flase
强制转换
如果把取值范围大的,赋值给取值范围小的,就需要进行强制转换
格式:目标数据类型 变量名=(目标数据类型)被强转的数据
取值范围:
char< short<int < long < long long < float< double
自增自减
++和–放在变量的前边或后边,单独写一行结果是一样的
int a = 10;int b= a++;
先用后加
int a= 10;int b= ++a;
先加后用
赋值运算符
符号 | 说明 | 举例 |
= | 直接赋值 | int a=10,将10赋值给a |
+= | 加后赋值 | a+=b,相当于a=a+b |
-= | 减后赋值 | a-=b,相当于a=a-b |
*= | 乘后赋值 | a*=b,相当于a=a*b |
/= | 除后赋值 | a/=b,相当于a=a/b |
%= | 取余赋值 | a%=b,相当于a=a%b |
关系运算符
符号 | 说明 |
== | a==b 判断a是否等于b |
!= | a!=b 判断a是否不等于b |
> | a>b 判断a是否大于b |
>= | a>=b 判断a是否大于等于b |
< | a<b 判断a是否小于b |
<= | a<=b 判断a是否小于等于b |
逻辑运算符
符号 | 作用 | 说明 |
&& | 与(而且)具有短路效果 | 两边都为真,结果才是真 |
|| | 或(或者)具有短路效果 | 两边都为假,结果才是假 |
! | 非(取反) | 取反 |
&& ||可以连续写多个的
多个&&,表示同时满足多个条件
多个||,表示在多个条件当中,只要满足其中一个
三元运算符
格式:关系表达式?表达式1:表达式2;
计算规则
首先计算关系表达式的值
如果成立,表达式1的值就是运算结果
如果不成立,表达式2的值就是运算结果
逗号运算符
从左到右
最后一个子表达式的结果,是整个表达式的结果
优先级最低(永远是最后执行)
运算符优先级
小括号优先于所有
一元 >二元 >三元
一元:一个变量就可以使用的
二元:两个变量可以使用的
三元: ?:
&&>||> 赋值
vs的解决方案资源管理器不小心删除
使用快捷键 Ctrl + Alt + L
恢复