
C语言
syzdev
这个作者很懒,什么都没留下…
展开
-
C语言-用gcc指令体验C语言编译过程
目录1 环境说明2 gcc编译步骤2.1 编辑2.2 预处理2.3 编译2.4 汇编处理2.5 链接3 一步到位的方法1 环境说明系统:Windows编译器:gcc命令行工具:cmder (用系统自带的命令行工具也可以)2 gcc编译步骤#步骤名生成文件功能1编辑器(Edit)test.c进行编码工作2预处理器(Pre-processing...原创 2020-03-11 13:27:43 · 732 阅读 · 0 评论 -
C语言-宏定义#define的用法
目录1 不带参宏定义2 带参宏定义3 与字符串有关的用法3.1 字符串转换3.2 字符转换3.3 字符连接1 不带参宏定义这种用法是最简单最常见的一种方式,如下:#define PAI 3.14注意:宏定义原则上用大写表示,虽然这并不是规定由于宏定义是预处理指令,并非是C语言语句,所以末尾不必加分号它的功能是在程序中若出现了PAI,就把它替换为3.14,示例程序如下:#i...原创 2020-03-09 17:46:40 · 7530 阅读 · 0 评论 -
C语言-typedef与#define的区别
目录1 typedef1.1 将复杂的声明简单化1.2 定义平台无关的类型1.3 与struct的结合使用1.4 typedef使用公式2 typedef与#define的区别2.1 执行时间不同2.2 功能有差异2.3 作用域不同2.4 对指针的操作1 typedef1.1 将复杂的声明简单化声明了一个返回bool类型并带有两个(int和double)形参的函数的指针类型FuncPoint...原创 2020-01-16 23:19:49 · 284 阅读 · 0 评论 -
C语言-动态内存分配总结
目录1 malloc2 calloc区别联系3 memset4 realloc1 mallocvoid *malloc( unsigned int num_bytes) 分配长度为num_bytes个字节的内存块,返回值为无类型指针,该指针指向所分配内存块的起始位置,因此利用该无类型指针赋值给其他类型的指针的时候,需要进行强制类型转换。int *p = (int *)malloc(siz...原创 2020-01-16 23:16:51 · 371 阅读 · 0 评论 -
C语言-统计单词个数
1 算法思想读取输入进来的一个字符串,统计其中单词的个数,由于每个单词字母不一样,长度不一样,所以来依靠识别单词来统计单词数是比较难的,下面观察一个字符串I am a Chinese可以发现这个字符串中,有4个单词,有3个空格,实际上统计空格数就可以统计单词数,即单词数 = 空格数 + 1,下面给出两个程序实现2 实现1#include <stdio.h>int mai...原创 2020-01-04 15:39:41 · 72498 阅读 · 36 评论 -
C语言-变量生存期及作用域
目录1 变量的生存期和作用域2 默认初始化规则(C++11)1 变量的生存期和作用域变量的储存方式:动态储存(自动、寄存器)、静态储存(静态和外部)储存方式名称自动变量anto寄存器变量register静态储存static外部变量extern基本类型的静态变量(static)系统初始值为 0,全局变量也会自动初始化0extern声明...原创 2019-12-13 19:46:06 · 1540 阅读 · 0 评论 -
C语言-运算符优先级及注意事项
目录1 优先级表2 注意点1 优先级表2 注意点若除数和被除数中有一个是负数,则舍入的方向是不固定的,如-5/3有些编译器是-1,有的是-2,但是大多数编译器都采用“向零取整”的方法,即-5/3=-1,取整后向零靠拢。%运算符要求参加运算的数为整数,结果也为整数,如8%3=2。除%以外的运算符的操作数都可以是任何算术类型。++,--只能用于变量,不能用于常量或表达式,如5++、(a...原创 2019-12-13 19:45:02 · 323 阅读 · 0 评论 -
C语言-二维数组与指针
目录1 指针和二维数组2 二维数组做函数的参数2.1 方法一2.2 方法二2.3 方法三1 指针和二维数组#include <stdio.h>int main() { int i, j; int arr[2][3] = {{1, 2, 3},{4, 5, 6},}; for(i = 0; i < 2; i++) { for(j = 0; j < 3; j+...原创 2019-12-13 19:43:57 · 238 阅读 · 0 评论 -
C语言-一维数组与指针
目录1 用指针访问数组的三种方式2 一维数组做函数的参数2.1 方法一2.2 方法二3 指针自增自减运算1 用指针访问数组的三种方式#include <stdio.h>int main(){ int array[5] = {5, 10, 15, 20, 25}; int i; int * ptr_array = array; for(i = 0...原创 2019-12-13 19:42:53 · 1139 阅读 · 1 评论 -
C语言-转义字符注意事项
目录1 简介2 注意点2.1 转义字符的界限2.2 特殊的转义字符1 简介在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制...原创 2019-12-13 19:41:38 · 745 阅读 · 0 评论 -
C语言-定义与初始化总结
目录1 实型2 标识符3 变量4 一维数组4.1 注意点4.2 初始化5 二维数组5.1 初始化6 字符数组6.1 初始化6.2 与字符指针的比较7 结构体7.1 声明定义7.2 初始化7.3 结构体指针8 共用体9 枚举1 实型实型分为十进制小数类型和指数形式,其中指数形式,规定以字母e和E代表以10为底的指数,但应注意:e或E之前必须有数字,且e或E后面必须为整数。正确示例:12.34...原创 2019-12-13 19:39:32 · 2445 阅读 · 0 评论 -
C语言-文件操作总结
目录1 fopen文件操作方式1.1 打开文件fopen1.2 关闭文件fclose2 向文件读写字符2.1 读字符fgetc2.2 写字符fputc3 向文件读写字符串3.1 读字符串fgets3.2 写字符串fputs4 格式化方式读写文件4.1 格式化写fprintf4.2 格式化读fscanf5 二进制向文件读写一组数据5.1 二进制读fread5.2 二进制写fwrite6 随机读写数据...原创 2019-12-13 19:36:40 · 723 阅读 · 0 评论 -
C语言-数组名真的不是指针
前言:参照我之前的两篇文章: 二维数组做函数的参数 动态创建二维数组事实告诉我们,二维数组名不等于二级指针那一维数组呢?对于一维数组,用一级指针指向数组名,用一级指针做参数传递一维数组,似乎毫无问题。void f(int *p);int main(void){ int arr[2]; int *p = arr; f(arr); return 0;}那么下面的原创 2017-10-25 20:40:17 · 761 阅读 · 0 评论 -
C语言-动态创建二维数组
前言:参照我之前的一篇文章 二维数组做函数的参数 文章中提到,当我们想向函数传递二维数组的时候,是不可以用二级指针作为形参的。 正确的方法是用数组指针作为形参,详细内容点击上面的链接在C语言中,想把 int arr[2][3] 这样的二维数组传递到函数 void f(int **arr) 是不可能的那么有没有办法可以实现呢? 答案是可以,但是需要用到另一种方式,就是动态创建二维数组动态创建的实原创 2017-10-25 19:58:27 · 1397 阅读 · 0 评论 -
C语言-链表的创建头插法和尾插法(有无头节点)
结构声明typedef int ElementType;typedef struct Node { ElementType data; struct Node *Next;} *List;头插法(有头节点)/* 建立链表 - 头插法 - 有头节点 +------+ +------+ +------+ +------+ | hea原创 2017-09-07 22:48:00 · 9521 阅读 · 22 评论 -
C语言-什么是尾递归
简介:想必大家都知道递归是什么,第一次接触尾递归,首先要从它的定义说起: 尾递归:当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作举一个简单的例子,用递归算阶乘:int factorial(int n){ if(n == 0 || n == 1) { return 1;原创 2017-09-05 13:30:09 · 1325 阅读 · 0 评论 -
C语言-二维数组做函数的参数
先来看一段代码:#include <stdio.h>#define SIZE (4)void PrintMatrix(int **arr){ for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { printf(" %d", arr[i][j]); }原创 2017-09-04 14:36:05 · 2725 阅读 · 0 评论