目录
本文适合C语言入门的人群阅读,读下去,你一定会有所收获。
本文重点:对C语言进行一个大致介绍。(不会讲的很详细,大致了解即可)
问:“ 什么是C语言?”
C语言是一种编程语言,几十年来经久不衰,依旧适合初学者作为人生的中第一门编程语言。
我推荐使用visual studio2019/2022编译器,进行C语言学习。
1. 一个C语言程序
#include<stdio.h> //引用库函数
int main() //C语言程序中一定存在一个主函数
{
printf("Hallo world"); //printf是一个库函数,需要引用才能使用
return 0;
}
//主函数是C程序的入口,一个工程只能存在一个
程序运行时会从主函数进入,即箭头指向位置。
2. 数据类型
C语言中,sizeof 可以用于计算数据类型大小,数据类型大小是当你运行程序时,编译器向内存申请的空间大小,单位是字节。
3. 变量与常量
定义变量的方法:
注意:
变量的使用:
局部变量与全局变量:
例
有关常量:
常量无法被改变。
注:枚举常量默认从0开始,一次向下递增1。
4. 字符串与转义字符
字符串:
我们发现arr2的字符串长度是一个随机值,因为没添加 \0告诉编译器该停下了,编译器就一直往后找,知道在某一个位置找到 \0了,才会停下。
那为什么arr1没加 \0编译器也能算对呢?
我们发现arr1四个字符却占用了五个内存,F11开始调试,打开监视窗口。
发现arr1这个字符串自动添加了 \0。
总结:创建字符串时会自动添加 \0,而单个创建字符时不会添加。
常用转义字符:
重要转义字符:
\ddd ddd表示1~3个八进制数字
\xdd dd表示1~2个十六进制数字
例:
\t 和 \62 被视作一个字符。
5. 注释
当你想要删除一行代码时,也可以选择注释掉它
当代码比较晦涩时,可以通过添加注释便于理解
注释的两种风格:
也可以通过右上角的快捷键进行注释。
6. 选择语句
例:
if 语句的应用
#include<stdio.h>
int main()
{
int learn = 0;
printf("好好学习/去打游戏(选择1/0)=>");
scanf("%d", & learn); //这是一个输入函数,能接收你输入的值
if (learn == 1)
{
printf("坚持,你会得到好offer\n");
}
else
{
printf("摆烂,毕业即失业\n");
}
return 0;
}
运行之后,输入1:
输入0:
7. 循环语句
例:
#include<stdio.h>
int main()
{
printf("学习编程\n");
int code_line = 0;
while (code_line <= 20000)
{
printf("坚持敲代码的行数:%d\n", code_line);
code_line++;
}
if (code_line > 20000)
{
printf("拿到好offer");
}
return 0;
}
只有达成while循环的条件,才会跳出循环。
8. 函数
函数的特点就是简化代码,代码复用。
例:
如果你想计算两个数相加的值:
如果使用函数:
注:返回值z的类型int要与函数Add的类型相同。
创建函数后,如果再想进行两数相加,只需再调用此函数即可。
9. 数组
我们该如何存储(1~10)的数字?
如下图:
c语言规定:数组每一个元素都有一个下标,下标从零开始。
创建数组 int arr[10]={0};
数组可以通过下标访问。
例:
利用下标,能够打印数组的内容。
10. 操作符
我会对个别常用的操作符进行简单介绍,大致了解操作符的作用即可。
有关算术操作符 / 与 %:
单目操作符
有关操作符++与--:
操作符--也是同理。
有关逻辑操作符:
在C语言中,0表示假,非0的数表示真。if语句中,判断为真时执行语句,判断为假时不执行。
所以上述代码仅输出b的值。
有关&&的应用:
有关操作符?的应用:
当我们想比较两个数的最大值时,可以使用if语句
也可以使用操作符?简化代码
还有逗号表达式、下标引用、函数调用和结构成员等操作符。
11. 常见关键字
大致了解,避免在创建变量名称时发生冲突。
关键字typedef(类型重命名)介绍:
你可能觉得这个unsigned int类型名字太长了,想要简便一点,这时候就可以用typdef。
重命名后与原名意义是相同的。
关键字static(静态的)介绍:
//修饰局部变量
如果使用static修饰:
就会发现 int n 不再离开作用域后销毁,这是为什么呢?
在内存中有三个区:栈区、堆区、静态区:
栈区中存放临时的变量,例:局部变量、函数变量;
堆区用于动态内存分配;
静态区存放:全局变量、静态变量。
普通的局部变量是放在栈区上,进入作用域创建,出了作用域释放,
但是局部变量被static修饰后,这种变量被放在静态区,创建好后,直到程序结束才释放。
本质上:static的修饰改变了局部变量的存储位置。
//修饰全局变量
注: 全局变量本身具有外部链接属性,
在A文件中定义的量,在B文件中可以通过链接使用。
但是如果全局变量被static修饰,外部链接属性就会变成内部链接属性,
那这个全局变量就只能在自己所在的源文件内部使用。
//修饰函数
同理,函数本身具有外部链接属性。
static修饰函数后,外部链接属性变成内部链接属性,
使得这个函数只能在自己的源文件内部使用。
12. #define定义常量和宏
#define定义常量上文已经展示,现在仅展示定义宏如何实现。
13. 指针
想了解指针,必须先了解内存是什么?
内存是计算机上的一种存储空间,程序运行时会载入内存,存储数据时也会申请内存。
而一个内存单元的大小是一个字节,每个内存单元都有自己的编号,而内存单元的编号被称为地址
在C语言中,地址也被称为指针。
总结:内存单元的编号 = 地址 = 指针
关于指针的应用:
关于指针的大小:
14. 结构体
结构体在C语言中一般用于描述复杂对象,比如人、书,C语言中没有这样的类型,
但是结构体能让我们创建新的类型。
例:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。