C语言
文章平均质量分 83
微尘hyt
这个作者很懒,什么都没留下…
展开
-
C语言 16.链表
1链表1.1引出- 数组缺陷1.1.1数组是一个静态空间,一旦分配内存,就不可以动态扩展,空间可能分配多或者分配的少,操作不精准1.1.2对于头部的插入删除效率低1.2链表1.2.1由节点组成1.2.2而节点由 数据域和 指针域组成1.2.2.1数据域是维护数据的1.2.2.2指针域 维护下一个节点的位置1.2.3链表可以解决数组的缺陷1.2.4链表的分类1.2.4.1静态链表、动态链表1.2.4.2单向链表、双向链表、单向循环链表、双向循环链表2静态链表和动态链表2.1静原创 2022-04-02 22:08:03 · 699 阅读 · 0 评论 -
C语言 15.结构体和文件
1.结构体嵌套二级指针练习struct Teacher{ char* name; char** students;};void allocateSpace(struct Teacher*** teachers){ if (teachers == NULL) { return; } //开辟内存 struct Teacher** ts = malloc(sizeof(struct Teacher*) * 3); //给原创 2022-04-02 21:49:17 · 646 阅读 · 0 评论 -
C语言 14.
1.一维数组名1.1除了两种特殊情况外,都是指向数组第一个元素的指针1.1.1特殊情况1 sizeof 统计数组长度1.1.2特殊情况2 对数组名取地址,数组指针,步长整个数组长度1.2数组名是指针常量,指针的指向不可以修改的,而指针指向的值可以改1.3传参数时候,int arr[] 可读性更高1.4数组索引下标可以为负数// 打印数组void printArray(int arr[], int len) // int arr[]等价于 int *arr,前者更好,因为可读性更原创 2022-04-02 21:45:15 · 576 阅读 · 0 评论 -
C语言 13.
1.calloc 和 realloc1.1calloc 和malloc 都是在堆区分配内存1.2与malloc不同的是,calloc会将空间初始化为01.3calloc(个数,大小)1.4realloc 重新分配内存1.4.1如果重新分配的内存比原来大,那么不会初始化新空间为01.4.2先看后续空间,如果足够,那么直接扩展1.4.3如果后续空闲空间不足,那么申请足够大的空间,将原有数据拷贝到新空间下,释放掉原有空间,将新空间的首地址返回1.4.4如果重新分配的内存比原来小,那么释放后序空间,原创 2022-04-02 21:41:19 · 224 阅读 · 0 评论 -
C语言 12.一些知识点
1宏函数1.1#define MYADD(x,y)((x) + (y)1.2将一些频繁短小的函数 写成宏函数1.3宏函数优点:以空间换时间1.4普通函数有入栈、出栈时间开销#define MYADD(x,y) x+y#define MYADD2(x,y) ((x)+(y))/*1. 宏函数需要加小括号修饰,保证运算的完成性质2.通常会将频繁、短小的函数写成宏函数3.宏函数会比普通函数在一定程度上效率高,省去普通函数入栈出栈时间上的开销优点:以空间换时间*/void tes原创 2022-04-02 21:34:16 · 324 阅读 · 0 评论 -
C语言 11.使用小技巧
1.typedef使用1.1起别名 - 简化struct关键字1.2区分数据类型1.3提高代码移植性#define _CRT_SECURE_NO_WARNINGS // VS下使用传统库函数会建议用_s更安全函数,如果不用会报错误 C4996#include<stdio.h> //标准 i input 输入 o output 输出#include<string.h> //对字符串处理 strcat strstr strcmp strcpy原创 2022-04-02 21:28:20 · 595 阅读 · 0 评论 -
C语言 10.贪吃蛇实现
1.实现要素定义蛇对象、食物对象初始化蛇、初始化食物控制流程:1) 蛇头和墙壁的碰撞2) 蛇头和蛇身体的碰撞3) 蛇头和食物的碰撞1> 蛇身增长2> 食物消失 – 新食物产生3> 分数累加4> 移动速度增大4) 蛇的移动 自动移动 手动控制移动: ASWD — 左下上右5)显示分数 排行榜图形界面。2. 实现2.1 snake.h#include "snake.h"void initSnake(void){ snak原创 2022-04-02 21:21:34 · 500 阅读 · 0 评论 -
C语言 09.文件
读写文件与printf、scanf关联printf – 屏幕 – 标准输出scanf – 键盘 – 标准输入perror – 屏幕 – 标准错误系统文件:(打开和关闭由系统自动执行)标准输入 – stdin – 0 一旦关闭了,scanf就不可以使用标准输出 – stdout – 1 一旦关闭了,printf就不可以使用标准错误 – stderr – 2应用程序启动时,自动被打开,程序执行结束时,自动被关闭。 ---- 隐式回收。1s = 1000ms1ms = 1000us原创 2022-04-02 21:02:10 · 524 阅读 · 0 评论 -
C语言 08.字符串和内存
【求非空字符串元素个数,求一串字符串里,不是’\n’的字符的个数】:int no_space(char* str){ int count = 0; char* p = str; while (*p) { if (*p != ' ') { count++; } p++; } return count;}int main(int argc,char* argv[原创 2022-04-02 20:40:27 · 359 阅读 · 0 评论 -
C语言 07. 指针和字符串
1.指针和内存单元指针: 地址。内存单元: 计算机中内存最小的存储单位。——内存单元。大小一个字节(8位)。 每一个内存单元都有一个唯一的编号(数)。 称这个内存单元的编号为 “地址”。指针变量:存地址的变量。 int a; printf("打印a变量的地址:%p\n", &a); // 打印a变量的地址:0000007B5476F5C4 16位*4=64位2.指针定义和使用:int a = 10;int *p = &a;原创 2022-04-02 20:08:45 · 385 阅读 · 0 评论 -
C语言 06.函数和多文件编程
1.函数的作用:提高代码的复用率提高程序模块化组织性。2.函数分类:系统库函数: 标准C库。 libc(1). 引入头文件 — 声明函数(2). 根据函数原型调用。【随机数】: 1. 播种随机数种子: srand(time(NULL)); 2. 引入头文件 #include <stdlib.h> <time.h> 3. 生成随机数: rand() % 100;用户自定义:除了需要提供函数原型之外,还需要提供函数实现。3函数定义:包含 函数原原创 2022-04-01 22:00:56 · 493 阅读 · 0 评论 -
C语言 04.循环语句
if分支语句:匹配一个范围.属于模糊匹配.if (判别表达式1){判别表达式为真,执行代码。}else if(判别表达式2){判别表达式1为假,并且判别表达式2,执行代码。}else if(判别表达式3){判别表达式1为假,判别表达式2为假,判别表达式3, 执行代码。}。。。else{以上所有判断表达式都为假, 执行代码。} int a ; scanf_s("%d", &a); // 11:a>0 if (a > 0)原创 2022-04-01 21:19:10 · 442 阅读 · 0 评论 -
C语言 03.运算符
一些关键字:extern:表示声明。 没有内存空间。 不能提升。const:限定一个变量为只读变量。volatile: 防止编译器优化代码。 volatile int flg = 0;register: 一般在编写底层的时候,应用开发使用很少。定义一个寄存器变量。没有内存地址。 register int a = 10; // 把数直接存到寄存器里面字符串:C语言中,用双引号引着的一串字符,称之为字符串。一定有一个结束标记’\0'char ch = ‘A’;一个字节"abc" --> '原创 2022-04-01 21:07:16 · 2139 阅读 · 0 评论 -
C语言 02.变量类型和数据类型
1. 常量:不会变化的数据。不能被修改。“hello”、‘A’、-10、3.1415926(浮点常量)#define PI 3.1415 【强调】:没有分号结束标记。 【推荐】 定义宏: 定义语法: #define 宏名 宏值const int a = 10; 定义语法:const 类型名 变量名 = 变量值。 【不推荐,因为后面可以用指针改掉】const 关键字: 被该关键字修饰的变量,表示为只读变量。#include <stdio.h># defi原创 2022-04-01 20:25:26 · 281 阅读 · 0 评论 -
C语言 01.入门程序和编译步骤
1. helloworld程序:#include <stdio.h> // #:关键标识符,表示引入头文件;include:引入头文件关键字 // stdio.h : 系统标准输入、输出库对应的头文件。给printf函数服务。 // <>:表示使用系统库函数。 “”:表示用户自定义库函数int main(void) // int: 函数返回值是整型数据。原创 2022-03-29 21:39:26 · 256 阅读 · 0 评论