C语言学习

初识C语言

## C语言是什么?
人和人交流使用的是自然语言,如:汉语、英语、日语
那人和计算机是怎么交流的呢?使用计算机语言
目前已知已经有上千种计算机语言,人们是通过计算机语言写的程序,给计算机下达指令,让计算机工作的。C语言就是众多计算机语言中的一种,当然C++/Java/Go/Python都是计算机语言。

编译和链接

vs2022编译器为例

C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。C语言代码是放在.c 为后缀的文件中的,要得到最终运行的可执行程序,中间要经过编译和链接2个过程。

一个工程一般都会有多个源文件组成,如下图所示,演示了源程序经过编译器和链接器处理的过程。
在这里插入图片描述注:

  1. 每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件)
  2. 多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)

编译器的对比

C语言是一门编译型的计算机语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令。
那我们常见的C语言编译器都有哪些呢?
比如:msvc、clang、gcc 就是一些常见的编译器,当然也有一些集成开发环境如:VS2022、XCode、CodeBlocks、DevC++、Clion等。
在这里插入图片描述
• VS2022 集成了MSVC(安装报包较大一些,安装简单,无需多余配置,使用起来非常方便)
• XCode 集成了clang(苹果电脑上的开发工具)
• CodeBlocks 集成了gcc(这个工具比较小众,需要配置环境,不太推荐)
• DevC++ 集成了gcc(小巧,但是工具过于简单,对于代码风格的养成不好,一些竞赛使用)
• Clion 是默认使用CMake,编译器是可以配置的(工具是收费,所以暂时推荐大家使用)

这里推荐各位安装vs2022的社区版学习,去比特鹏哥

VS2022的安装教程:https://www.bilibili.com/video/BV11R4y1s7jz/
且无脑式安装,默认界面是中文的,对初学者友好!!!

VS项目和源文件、头文件介绍

在VS上写代码,我们是需要创建项目的,直接新建项目就可以了。
在项目中就可以添加源文件和头文件。
C语言把.c 为后缀的文件称为源文件,把.h 为后缀的文件称为头文件。

为什么创建c文件时显示的是cpp后缀?

原因:

创建源文件时没有在后面添加.c,vs默认的是cpp文件。因此创建时想要有.c文件,必须要加上.c
例如创建testC语言文件:在这里插入图片描述


main函数

每个 C 语言程序不管有多少行代码,都是从main 函数开始执行的, main 函数是程序的入口,
main 函数也被叫做:主函数。main 前面的int 表示 main 函数执行结束的时候返回一个整型类
型的值。所以在main 函数的最后写return 0; 正好前后呼应。
• main函数是程序的入口
• main函数有且仅有一个
• 即使一个项目中有多个.c文件,但是只能有一个main函数(因为程序的入口只能有一个)

*字符串和\0

C语言中如何表示字符串呢?使用双引号括起来的一串字符就被称为字符串,如:“abcdef”,就是一个
字符串。
字符串的打印格式可以使用 %s 来指定,也可以直接打印如下:

#include <stdio.h>
int main()
{
printf("%s\n", "hello C");
printf("hello c");
return 0;
}

C语言字符串中一个特殊的知识,就是在字符串的末尾隐藏放着一个\0 字符,这个\0 字符是字符串的结束标志。

在这里插入图片描述
对于字符串"abcdef",我们实际上看到了6个字符:a,b,c,d,e,f,但是实际上在末尾还隐藏一个\0 的转义字符, \0 是字符串的结束标志。所以我们在使用库函数printf() 打印字符串或者strlen() 计算字符串长度的时候,遇到 \0 的时候就自动停止了。

C语言中也可以把一个字符串放在一个字符数组中,我们在这里利用下面的代码验证一下\0 的功能。

#include <stdio.h>
int main()
{
char arr1[] = {'a', 'b', 'c'};//arr1数组中存放3个字符
char arr2[] = "abc"; //arr2数组中存放字符串
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}

这样的代码,我调试的时候,观察一下arr1 和arr2 的内容:

在这里插入图片描述
我们可以看到, arr1 字符数组在打印的时候,打印了a 、b 、c 后还打印了一些随机值,这就是因为arr1 在末尾的地方没有\0 字符作为结束标志,在打印的时候没有停止。但是arr2 的打印就是完全正常的,就是因为arr2 数组是使用字符串常量初始化的,数组中有\0作为技术标志,打印可以正常停止。

如果我们在arr1数组中单独放一个 ‘\0’ 字符会怎么样呢?

#include <stdio.h>
int main()
{
char arr1[] = {'a', 'b', 'c', '\0'};
char arr2[] = "abc";
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", "abc\0def");
return 0;
}

在这里插入图片描述

学习C语言是一个系统的过程,以下是学习C语言的总结:

  1. 理解计算机语言:首先,要了解计算机语言是人与计算机交流的工具,C语言是其中一种高效且广泛使用的计算机语言。

  2. 掌握编译和链接过程:学习C语言需要理解源代码如何通过编译器编译成目标代码,以及如何通过链接器链接成可执行文件。

  3. 熟悉编译器和IDE:了解并选择一个合适的编译器和集成开发环境(如VS2022),这对于编写、编译和调试C程序至关重要。

  4. 项目和文件结构:熟悉如何在IDE中创建和管理项目,理解源文件(.c)和头文件(.h)的作用和区别。

  5. 编写main函数:掌握如何编写main函数,它是C程序的入口点。

  6. 字符串处理:学习如何在C语言中处理字符串,包括字符串的声明、初始化、打印和字符串结束标志\0的使用。

  7. 实践编程:通过编写和运行实际的C程序来加深理解,实践是学习编程的最佳方式。

  8. 阅读和分析代码:阅读别人的代码,理解其结构和逻辑,可以提高编程技巧。
    调试技能:学会使用IDE的调试工具来查找和修复代码中的错误。
    持续学习:C语言和编程领域不断更新,持续学习新的知识和技术是必要的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值