C语言需要编译器,我用的是VS2019这个IDE(集成开发环境)
第一个C语言程序
创建项目
创建.c文件
写代码
![](https://i-blog.csdnimg.cn/blog_migrate/ca20eee5620401a7c2628b32ac66edac.png)
![](https://i-blog.csdnimg.cn/blog_migrate/71b467b6870715cadc149f0cfd34e96d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0b05288ee231d08687a83a939f59a688.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0b1f2b34737c8ded9123e36aeb3bb8cf.png)
C语言中:xxx.c源文件xxx.h头文件/.cpp是C++后缀 cplusplus
![](https://i-blog.csdnimg.cn/blog_migrate/c1e3ef02effb9700196d0d034ec76bfa.png)
Ctrl+F5 执行代码。
其中return 0;说明main函数执行后返回一个整数值 >>>int - 整型
数据类型
char 字符数据类型
short 短整型
int 整型 整数
long 长整型
long long 更长的整型
float 单精度浮点型
double 双精度浮点型 小数
//C语言中有没有字符串类型???C语言中没有字符串类型的!
![](https://i-blog.csdnimg.cn/blog_migrate/ac72a6a5ba9f2d602acee0b971102391.png)
1 2 4 4 8 4 8单位是字节byte
bit - 比特 //1 byte=8 bit
byte - 字节
KB // 1KB=1024byte
MB
GB
TB
PB - 帕比特
其中C语言规定:sizeof(long)>=sizeof(int)前者大小可以是4/8字节 , 后者大小为4字节
如何理解%d打印整数,还有%s打印数组、%f打印浮点型、%c打印字符
如何理解1bit::
计算机能够识别的是二进制命令:
二进制 0 1
0/1就是1bit
![](https://i-blog.csdnimg.cn/blog_migrate/bf272e9eeea5e13068a4d003ccb12727.png)
举例:要将11放入整型空间中去(数据都是放在内存中的,要向内存申请一块空间存放11,这个空间大小为4字节)
![](https://i-blog.csdnimg.cn/blog_migrate/8633281d7eec9001fb450b73cb61f208.png)
用来存放11
变量的命名
最好有意义。
![](https://i-blog.csdnimg.cn/blog_migrate/ace7520e0271a0bef2a9b621570f63e6.png)
变量的分类
局部变量
![](https://i-blog.csdnimg.cn/blog_migrate/1d95f9da6e4dd07ba91c3012cbb8d0de.png)
全局变量
![](https://i-blog.csdnimg.cn/blog_migrate/cb396b3adf11f6a79503b107ddb25fa2.png)
常量
C语言中的常量分为以下几种:
字面常量
const修饰的常变量
#define定义的标识符常量
枚举常量
字符如aAsbd@#,在C语言中表示字符:'a'、'A'
字符串如abndfg,在C语言中表示字符串:“asdfjgg”其中空字符串“”,当然也可以“a”
***字符串注意点
///监视操作步骤,F10,将代码一行一行运行,找到窗口→监视后搜索要监视的对象名称即可。
![](https://i-blog.csdnimg.cn/blog_migrate/b2468f54b16350665b2d964f11e8e1bf.png)
数组中的字符串abcdef后面其实还有一个\0,它隐藏在f后面。//字符串的结束标志是一个\0,在计算字符串长度的时候\0是结束标志,不算做字符串内容,如下:计算字符串的长度和占用内存大小
![](https://i-blog.csdnimg.cn/blog_migrate/48c8155a2f8fd555b741741931291e80.png)
可看到字符串abcdef长度为6,其占用内存大小为7字节,一个字符占用一个1字节,其中\0也占用一个字节,共7字节。
再有:
![](https://i-blog.csdnimg.cn/blog_migrate/8af202693a65676acb6703f8d81913e9.png)
为何出现这种情况。
在arr1中字符串隐藏的有\0,其作为字符串的结标志,打印时遇到\0后便停止打印。
在arr2中由6个字符组成的数组,在打印时,将abcdef打印完成时,还没有遇到\0表示打印并未停止就会打印烫烫烫直到遇到\0打印停止。
![](https://i-blog.csdnimg.cn/blog_migrate/96c225d922e62b4dd5cddf3cdd97b68f.png)
转义字符
转义:转变原来的意思,如字符n→\n换行。
\?,在书写连续多个问号时使用,防止他们被解析成三字母词
\'用于表示字符常量'
\"用于表示一份字符串内部的双引号
\\用于表示一个反斜杠
\a警告字符,蜂鸣
\b退格符
\f进纸符
\a回车
\n换行、
\t水平制表符
\v垂直制表符
\ddd,ddd标志1-3个八进制的数字,如\130- X
\xdd,dd表示2个十六进制的数字,如\x30- 0
![](https://i-blog.csdnimg.cn/blog_migrate/c52d765a95773137935b28d3119cbe91.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7e7f758f584c8efaf2de86d92484f0e4.png)
有一个关于转义字符的经典题目:
![](https://i-blog.csdnimg.cn/blog_migrate/cdb42ba3ba43ae1ba4d36f1434b82335.png)
其中 \628,’8‘超过了8,所以\628算作是2个字符。
if语句
![](https://i-blog.csdnimg.cn/blog_migrate/c385e13aa5fd4392fd5d5bd5017e997c.png)
循环语句-while循环
![](https://i-blog.csdnimg.cn/blog_migrate/ca35175ef7930b40dff2d724cc055874.png)
函数
![](https://i-blog.csdnimg.cn/blog_migrate/368d531cb35c11eda6e3e318f1448e17.png)
利用函数实现2个数的相加。
![](https://i-blog.csdnimg.cn/blog_migrate/2de73b1ea026c59640cfb3c291eb87e4.png)