C语言初识

1、C语言是什么

C语言是众多计算机语言的一种。

2、编译器

2.1、原理

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

C语言代码是放在**.c**文件中的。

一个工程一般会有多个源文件组成。下图为源程序经过编译器和链接器处理的过程。

注:

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

于是,我们 windows 系统电脑上就生成了用C语言程序生成的可执行文件。

2.2、vs 2022

vs 2022是一种集成开发环境

vs 2022的优点:

  1. 主流,企业中较为常用。
  2. 包含编辑器编译器调试器,功能强大。
  3. 直接安装,不需要再额外配置环境。
  4. 有中文翻译安装包,初学者友好。

缺点:占用内存多。(多吗?)

3、VS项目、头文件、源文件

vs 2022上写代码要创建项目,选好地址直接创建即可。

头文件 的后缀是 .h源文件 的后缀是 .c

4、第一个C语言程序

5、 main 函数

main 函数是程序的入口 , main 函数有且只有一个 , main 函数前没有分号

以上图为例, main 函数前有一个 int ,说明此时 main 函数结束时,返回一个整型的值, 刚好 return 0 与之相呼应。

6、库函数

为了不再实现常用的代码,C语言标准规定了一组函数,这些函数组成了一个函数库,被称为标准库 。这些函数被称为库函数

举个例子, printf( ) 就是一个库函数,它的功能是在标准输出设备(一般指屏幕)上进行信息的打印。

cpp 复制代码
#include<stdio.h>

int main()
{
    int n = 10;
    printf("%d\n", n);//打印整型
    printf("%c\n", 'Q');//打印字符
    double m = 10.0;
    printf("%lf\n", m);//打印双精度浮点型

    return 0;
}

7、关键字

注意三点:

  1. 关键字都有特殊的意义
  2. 创建标识符时,不能与关键字重复
  3. 关键字不能自己创建

关键字有32个,学到了就记忆,没必要刻意记忆。

8、字符和ASCII编码

字符,如 a, Q, @, # 等。C语言中,用单引号将字符括起来,如 'a', 'Q', '@', '#' 。

假如我们每个人给每一个字符编写一个二进制序列,这个序列就叫做编码 。为了方便,美国国家标准协会(ANSI)出台了标准ASCII编码。如下图。

参考网址:ASCII 图表 - cppreference.com

最好掌握:

  • 字符 A~Z 的ASCII值从 65~90
  • 字符 a~z 的ASCII值从 97~122
  • 对印的大写字母比小写字母的ASCII值小32
  • 数字字符 0~9 的ASCII值从 48~57
  • 换行符 \n 的ASCII值是 10
  • ASCII值为 0~31 的32个字符,无法在屏幕上打印

用 %c 指定格式:

cpp 复制代码
#include<stdio.h>

int main()
{
    printf("%c\n", 'Q');
    printf("%c\n", 81);

    return 0;
}

可打印字符展示:

cpp 复制代码
#include<stdio.h>

int main()
{
    for (int i = 32; i <= 127; i++)
    {
        printf("%c ", i);
        if (15 == i % 16)
        {
            printf("\n");
        }
    }

    return 0;
}

9、字符串和\0

9.1、字符串

使用双引号括起来的字符就被称为字符串。

字符串用 %s 指定格式,也可以直接打印

cpp 复制代码
#include<stdio.h>

int main()
{
    printf("%s\n", "Hello");
    printf("Hello");

    return 0;
}

(补充)用 scanf 函数输入并输出字符串:

9.2、 \0

C语言的字符串中,末尾隐藏了一个字符: \0 。字符 \0 是字符串的结束标志。

对于 " abcdef ",我们看到的是六个字符。但是,当我们在 vs 2022 调试模式的监视窗口下,我们发现了未显示的 \0 。\0 是字符串的结束标志。所以 printf( ) 函数打印字符串时,遇到 \0 就停止了。

来写一段代码,验证 \0 的功能:

我们调试一下,会发现 arr2 相比 arr1 ,少了 \0 :

结果:

arr1 正常打印,而 arr2 打印出了乱码。

如果我们给 arr2 加上 \0 ,同时在一个字符串里加上 \0 ,结果会怎样?

由此, \0 的重要性可见一斑。

11、转义字符

顾名思义:转变原来的意思的字符。

如:

  • \0 :字符串的结束标志
  • \n :换行
  • \ddd :d d d 表示1~3个八进制的数字。
  • \xdd :d d 表示两个十六进制的数字。

12、语句和注释

语句也是看到就学,不需要刻意记;注释则要写得能方便其他人阅读代码。

相关推荐
水饺编程10 小时前
Windows 命令行:cd 命令1,cd 命令的简单使用
c语言·c++·windows·visual studio
水饺编程10 小时前
Windows 命令行:父目录与子目录
c语言·c++·windows·visual studio
倔强的小石头_11 小时前
【C语言指南】回调函数:概念与实际应用的深度剖析
c语言·开发语言
egoist202313 小时前
【linux仓库】万物至简的设计典范:如何用‘文件’这一个概念操纵整个Linux世界?
linux·运维·c语言·文件描述符·一切皆文件
凤年徐14 小时前
【数据结构】八大排序之快速排序:分而治之的艺术
c语言·开发语言·数据结构·c++·算法·排序算法
乔宕一14 小时前
使用 C 模仿 C++ 模板的拙劣方法
c语言·开发语言·c++
智者知已应修善业16 小时前
【51单片机6位数码管显示矩阵键值至右向左自左向右】2022-11-29
c语言·经验分享·笔记·嵌入式硬件·51单片机
yuanlaile16 小时前
2025年新版C语言 模电数电及51单片机Proteus嵌入式开发入门实战系统学习,一整套全齐了再也不用东拼西凑
c语言·51单片机·proteus·模电数电·2025年嵌入式必备
小莞尔16 小时前
【51单片机】【protues仿真】基于51单片机呼叫系统
c语言·stm32·单片机·嵌入式硬件·矩阵·51单片机