【C生万物】初始C语言

简介: 【C生万物】初始C语言


基本了解C语言的基础知识,对C语言有个初步的认识。

1. C语言是什么?

人与人之间的交流使用的是自然语言。如汉语,英语,日语。

人与计算机是怎么交流的呢?使用计算机语言。

目前已知已经有上千种计算机语言。人们是通过计算机语言写的程序,给计算机工作的。

C语言是一门通用的计算机编程语言,广泛用于底层开发。C语言是一门面向过程的计算机编程语言。

2. C语言的历史和辉煌

C语言最初是作为 Unix 系统的开发工具而发明的。

3. C语言的优缺点

  • C语言是一种底层语言。
  • C语言是一种小型语言。
  • C语言是一种包容性语言

3.1 优点:

  • 高效
  • 可移植性
  • 功能强大
  • 灵活
  • 标准库
  • Unix 系统集成

3.2 缺点:

  • C程序更容易隐藏错误
  • C程序可能会难以理解
  • C程序可能会难以修改

4. 第一个C语言程序

#include<stdio.h>
int main()
{
  printf("Hello C\n");
    
    return 0;
}

C语言把.c为后缀的文件称为源文件,把.h为后缀的文件称为头文件

5. main函数

每个C语言程序不管有多少行代码,都是从main函数开始执行的。main函数就是程序的入口,main函数也称为:主函数

  • main函数就是程序的入口。
  • main函数有且只有一个
  • 即使一个项目中有多个.c文件,但是只能有一个main函数(因为函数的入口只能有一个)

6. printf和库函数

6.1 printf

在第一个C程序中有一句代码如下:

printf("Hello C\n");

代码中使用了printf函数,printf是一个库函数,它的功能在标准输出设备上进行信息的打印。

注:使用printf函数需要包含的就是stdio.h这个头文件。

#include<stdio.h>

6.2 库函数

为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再有不同的编译器厂商根据标准进行实现,提供给程序员使用,这些函数组成的一个函数库,被称为标准库,这些函数也称为库函数。

一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用,要包含对应的头文件。

库函数的参考链接:https://cplusplus.com/reference/clibrary/

7. 关键字的介绍

关键字是C语言的词汇。它们对C语言而言比较特殊,不能用它们作为标识符(如:变量名)。C语言关键字也称为保留字

  • 关键字都有特殊的意义,是保留给C语言使用的
  • 创建标识符的时候是不能和关键字重复的
  • 关键也是不能自己创建的

C语言的32个关键字如下:

auto break case char const continue default do double else enum extern
float for goto if int long register return short signed sizeof stuct switch static
typedf union unsigned viod volatile while

注:在C99 标准中加入了inlin restrict _Bool _Comploex _Imaginary等关键字

C语言关键字的全部介绍链接:https://zh.cppreference.com/w/c/keyword

8. 字符和ASCll编码

在键盘上可以敲出各种字符,如:a,b,c,@,#,这些符号称为字符,C语言中字符是用单引号括起来,如:‘a’,‘#’;

在计算机中所有的数据都是以二进制形式存储的,那这些字符在内存中分别以什么样的二进制存储的呢?如果我们每个人自己给这些字符中的每个字符编一个二进制序列,这个叫做编码,为了方便大家相互通信,不造成混乱,后来美国国家标准学会(ANSII)出台一个标准的ASCll 编码,C语言中的字符就遵循ASCll编程的方式。

参考:https://zh.cppreference.com/w/cpp/language/ascii

几组特殊的数据:

  • 字符A-Z:65~90
  • 字符a-z:92~122
  • 大小写字符差值是32
  • 数字字符0-9:48~57
  • 换行\n:10

9. 字符串和\0

C语言中如何表示字符串呢?使用双引号括起来的一串字符就被称为字符串,如:“大佬互三互关”,就是一个字符串。

字符串的打印格式可以使用%s来指定,也可以直接打印如下:

#include<stdio.h>
int main()
{
    printf("%s","大佬互关");
    printf("大佬互关");
    return 0;
}

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

10. 转义字符

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

转义字符 释义
\? 在书写连续多个问号时使用,防止它们被解析成三字母词
\’ 用于表示字符常量’
\" 用于表示字符常量"
\\ 用于表示字符常量\
\a 警告字符,蜂鸣
\b 退格符
\f 换页符
\n 换行符
\r 回车
\t 水平制表符
\v 垂直制表符

下面2种转义字符可以理解为:字符的8进制或者16进制表示形式

\ddd d d d表示1~3个八进制数字 如:\130 表示字符X
\xdd d d 表示2个十六进制数字 如:\x30 表示字符0

参考:https://zh.cppreference.com/w/c/language/escape

11. 语句和语句的分类

C语言的代码是由一条条的语句构成的,C语言中的语句可分为以下五类:

  • 空语句
  • 表达式语句
  • 函数调用语句
  • 复合语句
  • 控制语句

11.1 空语句

空语句最简单,一个分号就是一条语句,是空语句。

#include<stdio.h>
int main()
{
  ;//空语句
    
    return 0;
}

空语句,一般出现的地方是:这里需要一条语句,但是这个语句不需要做任何是,就是可以写一个空语句。

11.2 表达式语句

表达式语句就是在表达式的后边加上分号。如下:

#include<stdio.h>
int main()
{
  int a = 20;
    int b = 0;
    b = a + 5;//表达式语句
    
    return 0;
}

11.3 函数调用语句

函数调用的时候,也会加上分号,就是函数调用语句。如下:

#include<stdio.h>
int Add(int x, int y)
{
    return x + y;
}
int main()
{
  int ret = Add(2,3);//函数调用语句
    printf("%d\n",ret);
    
    return 0;
}

11.4 复合语句

复合语句其实就是代码块,成对括号的代码就构成一个代码块,也称为复合语句

#include<stdio.h>
void print(int arr[], int sz) // 函数大括号中代码也构成复合语句
{
    int i = 0;
    for(i=0; i<sz;i++)
    {
        printf("%d",arr[i]);
    }
}
int main()
{
    int i = 0;
    int arr[10] = {0};
    for(i=0; i<10; i++)
    {
        arr[i] = 10-i;
        printf("%d\n",arr[i]);
    }
    
    return 0;
}

11.5 控制语句

控制语句用于控制程序的执行流程,以实习程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。

  1. 条件判断语句也叫分支语句if语句、switch语句
  2. 循环执行语句do while语句、while语句、for语句
  3. 转向语句break语句、goto语句、continue语句、return语句

12. 注释是什么?

注释是写程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的

12.1 注释有哪些方式

  • 多行注释:/**/
  • 单行注释://
#include<stdio.h>
int main()
{
    /*
        这是个多行注释
  */
    // 这是个单行注释
    return 0;
}

相关文章
|
2月前
|
存储 编译器 C语言
【C生万物】C语言数据类型、变量和运算符
【C生万物】C语言数据类型、变量和运算符
|
4月前
|
存储 编译器 Linux
C生万物 | 万字细说C语言结构体-3
C生万物 | 万字细说C语言结构体
37 0
|
4月前
|
存储 编译器 Linux
C生万物 | 万字细说C语言结构体-2
C生万物 | 万字细说C语言结构体
35 0
|
4月前
|
C语言 C++
C生万物 | 万字细说C语言结构体-1
C生万物 | 万字细说C语言结构体
37 0
|
存储 前端开发 编译器
C生万物 | C语言文件操作指南汇总【内附文件外排序源码】
从0到1教你学会C语言文件操作。附有文件外排序实战训练加成,对文件操作更上一层楼
100 0
C生万物 | C语言文件操作指南汇总【内附文件外排序源码】
|
12天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
23 0
|
12天前
|
程序员 C语言 开发者
C语言库函数 — 字符串函数(含模拟实现字符串函数)
C语言库函数 — 字符串函数(含模拟实现字符串函数)
35 0
|
19天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现1
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
19天前
|
机器学习/深度学习 C语言
【C语言】函数的系统化精讲(三)1
【C语言】函数的系统化精讲(三)