news 2026/3/23 7:55:47

初识 C 语言:快速上手与简单使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初识 C 语言:快速上手与简单使用

一、初始 C 语言与简单使用


文章目录

  • 一、初始 C 语言与简单使用
    • 1. C 语言以及编译器
    • 2. 编译和链接
    • 3. 第一个 C 语言程序
    • 4. 字符和 ASCLL码
    • 5. printf 简单使用
    • 6. 关键字
    • 7. 字符串
    • 8. 转义字符
    • 9. strlen
    • 10. 语句分类
    • 11. 注释
  • 声明

1. C 语言以及编译器

C 语言是一门面向过程的计算机语言,1972年诞生于美国贝尔实验室,最初是作为 Unix 系统的开发工具而发明的。其具有简介高效,可移植性,结构化强和功能丰富等特点。

计算机能够理解的是二进制的信息,所以需要依赖编译器将编程语言转换成机器能够执行的二进制指令。例如:msvc、gcc等常见的编译器。

集成开发环境(IDE):是用于提供程序开发环境的应用程序,包括代码编辑器,编译器,调试器和图形用户界面等工具,其集成了代码编写,分析,编译和调试等功能。

本文以 VS 2026 作为集成开发环境,安装教程:VS 2026

2. 编译和链接

C 语言作为编译型计算机语言,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件才能够被执行。

C 语言源代码文件(.c)在 VS 中主要经过编译和链接两个过程:

  1. 每个源文件(.c)都会经过 VS 编译器(cl.exe)生成对应的目标文件(.obj)
  2. 多个目标文件和链接库经过链接器(link.exe)的处理生成可执行程序(.exe),可执行程序包含的便是对应的二进制信息

3. 第一个 C 语言程序

main 函数是程序入口,也叫主函数。

实操:

#include<stdio.h>// 标准输入输出的头文件(库函数的使用需要包括对应的头文件)intmain()//其中 int 表示函数结束需要返回一个整数类型的值,与 return 0 前后呼应{printf("hello world");return0;}

main 函数程序入口仅有一个,哪怕多个 .c 文件,也只能有一个

4. 字符和 ASCLL码

数据在计算机中存储是二进制的形式,给每个字符编一个二进制序列,称为编码。为了避免混乱,美国出台了标准的 ASCLL编码。

  • 字符A~Z:65~90
  • 字符a~z:97~122
  • 大小写字符的差值:32
  • 数字字符0~9:48~57

    参考:ASCII图表 - cppreference.com

5. printf 简单使用

printf是一个库函数,功能是在屏幕上进行信息打印。在使用库函数的时候,需要包含头文件。
printf函数需要包含stdio.h头文件

实操:

#include<stdio.h>// 标准输入输出的头文件intmain(){//占位符会被后边的值所替换printf("hello world\n");// \n 换行符,"" :字符串,可以包含多个字符printf("%s\n","hello world");//%s 字符串占位符printf("%c\n",'a');// %c:字符占位符,'':字符,只能包含一个字符printf("%c\n",97);// 字符的底层是用二进制进行存储,所以输入数字会默认为 ASCLL码,通过 ASCLL码进行转换printf("%d\n",123);// %d:整数占位符return0;}

6. 关键字

C 语言中有一批符号专门保留给 C 语言使用,称为关键字。比如intif等。

C 语言关键字全部介绍:C keywords

7. 字符串

C 语言字符串的末尾隐藏着一个\0结束字符

实操:

#include<stdio.h>// 标准输入输出的头文件intmain(){chararr1[]={'a','b','c'};// 此时打印完 c 后还会打印一些随机值,因为没有 \0 识别不到结束chararr2[]={'a','b','c','\0'};chararr3[]="abc";//自带 \0printf("%s\n",arr1);printf("%s\n",arr2);printf("%s\n",arr3);printf("%s\n","abc\0def");return0;}

8. 转义字符

转义字符顾名思义:转变原来的意思。
转义字符在计算字符数量时作为一个字符出现。

常用转义字符:

  • \': 用于表示字符常量 ’
  • \":用于表示字符串内部的双引号
  • \\:用于表示一个反斜杠 \ ,防止 \ 被解释为一个转义字符
  • \a:警报或闪烁
  • \b:退格符,光标回退一个字符,不删除字符
  • \n:换行符
  • \r:回车符:光标回到同一行的开头
  • \t:制表符,光标移动到下一个水平制表位,带上本身输出的字符个数共为4/8的倍数

字符的8进制和16进制表示形式:

  • \ddd:ddd 表示 1~3 个八进制的数字,输出结果是将 ddd 转换为十进制的 ASCLL码值,输出相对应的字符
  • \xdd:dd 表示 2 个十六进制的数字,输出结果是将 dd 转换为十进制的 ASCALL码值,输出相对应的字符

实操:

#include<stdio.h>// 标准输入输出的头文件intmain(){printf("%c\n",'\'');// \' 用于表示字符常量 'printf("%s\n","\"");// \" 用于表示字符串内部的双引号printf("%s\n","a\tbc\tdef\tqqqq\twwwwwww\ta");// \t 制表符,光标移动到下一个水平制表位,带上本身输出的字符个数共为4/8的倍数printf("%s\n","c:\\test\\test.c");// \\ 用于表示一个反斜杠 \ ,防止 \ 被解释为一个转义字符printf("\a");// 警报或闪烁// \b 退格符:光标回退一个字符,不删除字符printf("abcd\b");getchar();// 用于接收键盘输入的字符,使用此函数观察 \b 退格符的效果printf("abcd\b\be\n");// 回退两个字符,打印 e 替换光标后的内容 ,打印几个字符就替换几个内容// \r 回车符:光标回到同一行的开头printf("abc\rde");// 光标回到开头打印 de 替换光标后的内容 ,打印几个字符就替换几个内容getchar();// 用于接收键盘输入的字符,观察 \r 回车符的效果//字符的 8 进制 / 16 进制表示形式// \ddd:ddd 表示 1~3 个八进制的数字,输出结果是将 ddd 转换为十进制的 ASCALL码值,输出相对应的字符printf("%c\n",'\130');// 130 转换为十进制是 88printf("%c\n",88);// \xdd:dd 表示 2 个十六进制的数字,输出结果是将 dd 转换为十进制的 ASCALL码值,输出相对应的字符printf("%c\n",'\x30');// 30 转换为十进制是 48printf("%c\n",48);return0;}

9. strlen

strlen统计字符串中的字符个数,字符串中的\0不作为计算

实操:

#include<stdio.h>// 标准输入输出的头文件#include<string.h>// 字符类型的头文件intmain()//程序入口{intlen1=strlen("abcd");intlen2=strlen("c:\test\198\abc\test.c");// \198 其中的 \1 为一个字符,9 第二个,8 第三个,因为八进制的包括范围是 0~7intlen3=strlen("\130");//由此可见转义字符作为一个字符出现intlen4=strlen("c:\test\098\abc\test.c");// 遇到 \0 便停止printf("%d\n",len1);printf("%d\n",len2);printf("%d\n",len3);printf("%d\n",len4);return0;}

10. 语句分类

  1. 空语句:只有一个;分号
  2. 表达式语句:表达式的后边加上分号
  3. 函数调用语句:调用函数的语句,例如printf语句,调用的是库函数
  4. 复合语句:代码块,一个方括号{}就是一个代码块
  5. 控制语句:
  • 条件判断语句(分支语句):if、switch
  • 循环执行语句:do while、while、for
  • 转向语句:break、goto、continue、return

11. 注释

  • /* 注释的内容 */:多行注释,此注释可以对函数参数进行说明,在它后面的代码依然会执行。不支持嵌套注释,/*开始注释后,遇到第一个*/就认为注释结束

  • //:单行注释,在后面的代码不会被执行。


声明

本文是在鹏哥 C 语言集训营学习过程中所记录的学习笔记,梳理了核心知识点,同时也记录了本人实操验证的代码案例,供后续学习复盘使用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 5:46:57

如何快速掌握Redash数据可视化:从零到专家的完整指南

如何快速掌握Redash数据可视化&#xff1a;从零到专家的完整指南 【免费下载链接】redash getredash/redash: 一个基于 Python 的高性能数据可视化平台&#xff0c;提供了多种数据可视化和分析工具&#xff0c;适合用于实现数据可视化和分析。 项目地址: https://gitcode.com…

作者头像 李华
网站建设 2026/3/13 21:30:02

Mac办公效率翻倍?Charmstone教你玩转多任务切换!

Charmstone&#xff1a;让Mac多任务切换顺滑如丝的秘密武器在现代办公环境中&#xff0c;我们每天都在多个应用程序之间来回切换。打开文档、切换聊天工具、回到浏览器&#xff0c;这些操作看似微不足道&#xff0c;却在不知不觉中消耗了大量时间和注意力。Charmstone的出现&am…

作者头像 李华
网站建设 2026/3/20 19:08:25

Diffusers一致性模型快速入门指南:从数据集加载到图像生成

Diffusers一致性模型快速入门指南&#xff1a;从数据集加载到图像生成 【免费下载链接】diffusers-cd_bedroom256_l2 项目地址: https://ai.gitcode.com/hf_mirrors/openai/diffusers-cd_bedroom256_l2 在生成式AI快速发展的今天&#xff0c;一致性模型作为扩散模型的重…

作者头像 李华
网站建设 2026/3/22 3:55:20

3分钟掌握分布式通信性能翻倍秘诀

3分钟掌握分布式通信性能翻倍秘诀 【免费下载链接】skynet 一个轻量级的在线游戏框架。 项目地址: https://gitcode.com/GitHub_Trending/sk/skynet 在分布式系统开发中&#xff0c;我们常常面临服务间通信的性能瓶颈问题。当系统规模扩大、用户请求激增时&#xff0c;不…

作者头像 李华
网站建设 2026/3/14 6:24:00

面向风资源工程师的 Bladed 极限载荷仿真入门——以 V50 敏感性分析为例

目录面向风资源工程师的 Bladed 极限载荷仿真入门——以 V50 敏感性分析为例摘要1 研究背景与问题定义2 技术路线概述3 工况选择与参数固定原则3.1 工况类型选择3.2 参数固定原则4 Bladed 仿真实操流程4.1 建立基准 EWM 工况4.2 构建 V50 扫描工况集4.3 运行仿真与结果输出5 关…

作者头像 李华
网站建设 2026/3/20 21:11:52

快速掌握Windows便携版Postman:免安装的API开发神器终极指南

快速掌握Windows便携版Postman&#xff1a;免安装的API开发神器终极指南 【免费下载链接】postman-portable &#x1f680; Postman portable for Windows 项目地址: https://gitcode.com/gh_mirrors/po/postman-portable Postman便携版是一款专为Windows系统设计的免安…

作者头像 李华