随笔分类 - C语言
摘要:再来看看条件编译,还可以根据条件,选择性地对某些内容进行忽略。 来认识一下#ifdef、#else、#endif这三种条件编译指令: #include <stdio.h> // ifdef用于判断是否定义了符号PI,如果没有的话则处理以下的指令 #ifdef PI #define M 666 //
阅读全文
摘要:前面认识了#include指令,接着来看#define指令,它可以实现宏定义。宏是啥意思? 把参数批量替换到文本中,这种实现通常称为宏(macro)或定义宏 (define macro) 可以通过#define来定义宏,规则如下: #define 宏名(记号) 内容 比如现在想通过宏定义一个PI:
阅读全文
摘要:前面了解了如何使用#include引入其他文件,接着来了解一下系统提供的一些常用库。 字符串 计算字符串长度: #include <stdio.h> #include <string.h> int main() { char* c = "Hello World!"; // 使用strlen计算长度,
阅读全文
摘要:C 语言学习已经快要接近尾声了,但是有一个东西迟迟还没有介绍,就是一直在写的: #include <stdio.h> 这到底是个什么东西,为什么每次都要加上呢?这里将详细讨论它缘由。 C 语言中带 # 号的指令并不是 C 关键字的一部分,不属于 C 语言。 带 # 号的指令是写给编译器看的,告诉它一
阅读全文
摘要:之前认识过很多种数据类型,包括整数、小数、字符、数组等,通过使用对应的数据类型,就可以很轻松地将数据进行保存了,但是有些时候,这种简单类型很难去表示一些复杂结构。 结构体 比如现在要保存 100 个学生的信息(学号、姓名、年龄),似乎找不到一种数据类型能够同时保存这三种数据(数组虽然能保存一系列的元
阅读全文
摘要:指针可以说是整个 C 语言中最难以理解的部分了。 什么是指针 还记得在前面谈到的通过函数交换两个变量的值吗? #include <stdio.h> void swap(int, int); int main() { int a = 10, b = 20; swap(a, b); printf("a
阅读全文
摘要:其实函数在一开始就在使用了: // 这就是定义函数 int main() { ... } 程序的入口点就是main函数,只需要将程序代码编写到主函数中就可以运行了,不过这个函数只是由我们来定义,而不是我们来调用。 当然,除了主函数之外,一直在使用的printf也是一个函数,不过这个函数是标准库中已经
阅读全文
摘要:前面学习了数组,而对于字符类型的数组,比较特殊,它实际上可以作为一个字符串(String)表示,字符串就是一个或多个字符的序列,比如在一开始认识的"Hello World",像这样的多个字符形成的一连串数据,就是一个字符串,而printf函数接受的第一个参数也是字符串。 在 C 语言中并没有直接提供
阅读全文
摘要:简单来说,数组就是存放数据的一个组,所有的数据都统一存放在这一个组中,一个数组可以同时存放多个数据。 一维数组 比如现在想保存 12 个月的天数,那么只需要创建一个 int 类型的数组就可以了,它可以保存很多个 int 类型的数据,这些保存在数组中的数据,称为元素: // 12个月的数据全部保存在了
阅读全文
摘要:if 如果需要判断某个条件,当满足此条件时,才执行某些代码,那这个时候该怎么办呢?可以使用if语句来实现: #include <stdio.h> int main() { int i = 0; // 只希望i大于10的时候才执行下面的打印语句 if (i > 10) { printf("该数字大于1
阅读全文
摘要:基本运算符 基本运算符包含常用的一些操作,常用的有: 加法运算符:+ 减法运算符:- 乘法运算符:* 除法运算符:/ 取模运算符:% 赋值运算符:= 先来看加法运算,这个就和数学中的是一样的了: #include <stdio.h> int main() { int a = 10, b = 5; p
阅读全文
摘要:一种类型的数据转换为另一种类型的数据,这种操作称为类型转换。 类型转换分为自动类型转换和强制类型转换。 自动类型转换 比如现在希望将一个 short 类型的数据转换为 int 类型的数据: #include <stdio.h> int main(){ short s = 10; // 直接将s的值传
阅读全文
摘要:所有的数据底层都是采用二进制来进行保存的。 第一位用于保存符号位。 如果不考虑这个符号位,那么所有的数都是按照正数来表示。 比如考虑了符号位的 char 类型: 考虑符号表示范围:-128 ~ 127 不考虑符号:0 ~ 255 直接使用这些不带符号位的数据类型: #include <stdio.h
阅读全文
摘要:变量 变量就像在数学中学习的 x,y 一样,可以直接声明一个变量,并利用这些变量进行基本的运算,声明变量的格式为: 数据类型 变量名称 = 初始值;(其中初始值可以不用在定义变量时设定) = 是赋值操作,可以将等号后面的值赋值给前面的变量,等号后面可以直接写一个数字(常量)、变量名称、算式。 比如我
阅读全文
摘要:整数 整数就是不包含小数点的数字,整数包含以下几种类型: short :占用 2 个字节,16 个 bit 位。 int:占用 4 个字节,32 个 bit 位,能够表示 -2^32 到 2^32 之间的数字,默认使用这种类型。 long:占用 8 个字节,64 个 bit 位。 浮点 浮点类型一般
阅读全文
摘要:原码 计算机中所有的数字都是使用 0 和 1 这样的二进制数来进行表示的。 这时如果要存储一个数据,比如十进制的 3,那么就需要使用 2 个二进制位来保存,二进制格式为 11,占用两个位置,称为 2 bit 位。 一般占用 8 个 bit 位表示一个字节(B),2 个字节等于 1 个字,所以一个字表
阅读全文
摘要:C 语言的编译器有很多,其中最常用的是 GCC,这里以安装 GCC 为例。 Windows 这里以 Windows 11 为例 官方下载地址:https://www.mingw-w64.org/ 选择 Downloads 选择 Windows 的 GCC 环境 MingW-W64-builds 选择
阅读全文
摘要:历史 C 语言是一门面向过程的计算机编程语言,于 1972 年诞生于贝尔实验室。 C 语言是丹尼斯·里奇(Dennis Ritchie)以 B 语言为基础发展而来,因此他被称为 C 语言之父。 C 语言为什么命名为 C ? 1967 年,剑桥大学的 Martin Richards 对 CPL(Com
阅读全文