C语言学习
文章平均质量分 97
五颗粒粒
你就是海滩下的那乌克丽丽
寻找着逆光让暧昧变成剪影
展开
-
C语言进阶——指针进阶
C语言指针进阶一、字符指针指针的初阶我们可以参看这篇博客C语言初阶——指针,这篇博客主要有四个重要结论,也是初阶指针的重要概念:1. 指针是地址,指针变量是一个变量,用来存放内存单元的地址,通过指针能找到以它为地址的内存单元。2. 指针的大小是固定的4/8个字节(32位平台/64位平台)。3. 指针是有类型,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。4. 指针的运算。下面我们将继续探讨指针的进阶部分一、字符指针在2.1指针的类型中我们知道有一种指针类型为字符指针 ch原创 2021-07-09 15:19:30 · 965 阅读 · 0 评论 -
05-C语言进阶——动态内存管理
动态内存管理一、为什么要动态内存分配?二、动态内存函数函数介绍2.1malloc2.2 free2.3 calloc2.4 realloc三、常见动态内存错误3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部分3.5 对同一块动态内存多次释放3.6 动态开辟内存忘记释放(内存泄漏)一、为什么要动态内存分配?前面用到的内存开辟方式为在栈上开辟空间,例如:int val = 20;//在栈空间上开辟四个字原创 2020-11-25 10:50:05 · 4634 阅读 · 4 评论 -
03-C语言进阶——模拟实现字符串操作函数
模拟实现字符串操作函数1.模拟实现strcat2.模拟实现str3.模拟实现1.模拟实现strcat//1.模拟实现strcatchar * my_strcat(char *destination, const char * source){ //首先定义一个指针指向destination起始地址,便于操作完成后返回原始字符串的首地址 char *dest = destination; //判断两个字符串是否为空 assert(destination != NULL); assert(so原创 2020-11-30 20:48:36 · 1939 阅读 · 0 评论 -
03-C语言进阶——模拟实现内存操作函数(memmove与memcpy)
模拟实现内存操作函数1.模拟实现memcopy2.模拟实现memmovememcpy和memmove并不属于字符串操作函数,而是内存操作函数,而对内存进行复制和移动会存在多种情况,下面通过模拟实现两种函数来讨论两块内存的不同情况和内存操作函数的不同于相同。1.模拟实现memcopy2.模拟实现memmove...原创 2020-12-02 22:42:35 · 3597 阅读 · 5 评论 -
03-C语言进阶——字符函数和字符串函数
字符函数和字符串函数一、求字符串长度strlenC语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数.一、求字符串长度strlensize_t strlen(const char *str)字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数。注意:这里不包含’\0’,例如"abc",使用strlen返回的值就是3。参数指向的字符串必须要以原创 2020-11-24 16:35:57 · 4433 阅读 · 8 评论 -
C语言习题——练习2
每日练习,不做讲解#include <stdio.h>#include <assert.h>#if 0//1.代码调试解释问题int main(){ int i = 0; int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; for (i = 0; i <= 12; i++) { arr[i] = 0; printf("hello bit\n"); } return 0;}#endif#if 0//2.模拟str原创 2020-11-11 14:48:02 · 1335 阅读 · 0 评论 -
C语言习题——练习1
操作符练习题1.求两个数二进制中不同位的个数1.1 思路1.2 代码2.打印整数二进制的奇数位和偶数位2.1 思路2.2 代码3.统计二进制中1的个数3.1 思路3.2 代码4 交换两个变量(不创建临时变量)4.1 思路4.2 代码5.喝汽水问题5.1 思路5.2 代码1.求两个数二进制中不同位的个数编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:71.1 思路(1) 先将m和n进行按位异或,此时m和n相同的二进制比特位清原创 2020-11-08 19:27:30 · 1490 阅读 · 0 评论 -
C语言习题——练习3
#include<stdio.h>//1.杨辉三角//在屏幕上打印杨辉三角。//1//1 1//1 2 1//1 3 3 1void YHTri(int n){ //首先初始化为1,以为第一行为1 int data[30][30] = { 1 }; //从第二行开始打印 for (int i = 1; i < n; i++) { //第一列永远为1 data[i][0] = 1; for (int j = 1; j <= i; j++)原创 2020-11-14 10:26:25 · 1334 阅读 · 0 评论 -
C语言习题——练习4
回调函数-qsort各种操作1.模仿qsort的功能实现一个通用的冒泡排序2.使用库函数,qsort排序各种类型的数据三级目录1.模仿qsort的功能实现一个通用的冒泡排序//定义比较函数int compar(const void* _px, const void *_py){ //首先对传入的参数进行强制类型转换,转为整形指针类型 int *px = (int *)_px; int *py = (int *)_py; //比较两个数的大小, //1.升序:若x>y,返回1,x&l原创 2020-11-20 09:55:00 · 1298 阅读 · 0 评论 -
C语言初阶——指针
指针一、指针三连问1.1 什么是指针?1.2 为什么使用指针?1.3 指针怎么用?二、指针和指针的类型2.1 指针类型2.2 指针的解引用三、野指针四、指针运算五、指针和数组六、二级指针七、指针数组一、指针三连问1.1 什么是指针?在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单原创 2020-12-17 21:36:57 · 8043 阅读 · 24 评论 -
C语言初阶——函数
C语言初阶——函数1. 函数是什么2. 库函数3.自定义函数4. 函数参数5. 函数调用6. 函数的嵌套调用和链式访问7. 函数的声明和定义8. 函数递归1. 函数是什么数学中我们常见到函数的概念。但是C语言中的函数是什么呢? 维基百科中对函数的定义:子程序在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method,subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责原创 2021-01-16 19:39:11 · 1902 阅读 · 0 评论 -
C语言小游戏2——扫雷
C语言实现扫雷游戏代码下载一、多文件思维二、游戏总体思路与函数设计实现2.1 游戏主控制函数Game2.2 游戏菜单Menu2.3 埋雷SetMines2.3 显示面板ShowBoard2.4 坐标周围布雷情况三、多文件代码清单3.1 game.h3.2 game.c3.3 main.c代码下载Github源码下载地址:一、多文件思维我们使用多文件实现扫雷游戏,培养多文件思维,分别为game.h、game.c和main.c二、游戏总体思路与函数设计实现扫雷游戏的主要思路为:#mermaid-s原创 2020-11-06 16:03:15 · 2976 阅读 · 3 评论 -
C语言小游戏1——三子棋
C语言实现三子棋游戏一、多文件1.1 game.h1.2 game.c1.3 main.c二、游戏总体思路与函数设计三、函数实现四、一、多文件我们使用多文件实现三子棋游戏,分别为game.h、game.c和main.c1.1 game.h用于存放实现游戏的所有库函数和函数声明使用ifndef/define/endif防止头文件的重复包含和编译。#ifndef _GAME_H#define _GAME_H#include <stdio.h>#include <Window原创 2020-11-02 16:37:24 · 2549 阅读 · 7 评论 -
有趣的C语言问题——判断素数
判断素数算法要求算法思路编译环境方法一:试除法方法二方法三方法4总体代码算法要求实现一个函数,判断一个数是不是素数。利用上面实现的函数打印100到200之间的素数。算法思路首先了解概念:素数是什么?素数:即质数,除了1和自己之外,再没有其他的约数,则该数据为素数。通俗讲就是一个数只能被1和它自身所整除。例如:十以内的素数:1,2,3,5,7,9。上述数字只能被1和数字本身整除。编译环境Win10,VS2015方法一:试除法最简单直接的办法,挨个试。从1开始逐个遍历到数字本身。代码实现:原创 2020-10-22 12:51:15 · 667 阅读 · 0 评论