C语言
文章平均质量分 77
C语言基础、进阶
XiYang-DING
cpper|今年主更新c三剑客,加油
展开
-
《C和指针》(Kenneth Reek)精读——第五章:操作符和表达式
当较小的整型在表达式中与较大的整型一起使用时,较小的整型会被隐式地转换为较大的整型,以确保表达式求值的正确性。为了确保跨平台的可移植性,如果你需要处理负数的取模运算,并且需要特定的行为(比如总是得到非负的余数),参考环形队列中的方法可修改为如下,来确保余数在。因此,实际的加法运算是两个整数(53和51)之间的加法,而不是字符之间的加法。两个相邻的操作符哪个先执行取决于它们的优先级,如果两者的优先级相同,那么它们的执行顺序由它们的结合性决定。因为后缀形式返回的是变量改变前的值的拷贝,而不是变量本身。原创 2024-03-31 18:48:13 · 716 阅读 · 1 评论 -
《C和指针》(Kenneth Reek)精读——第四章:语句
但是,在其他语言(如C、C++、Java等)中,如果不正确地使用花括号,就可能出现这个问题。为了避免这种问题,应该始终确保使用花括号来明确界定代码块,尤其是在嵌套的if-else语句中。循环中,通常有一个初始化部分、一个条件检查部分、一个循环体和一个调整(或迭代)部分。语句时,程序会跳过当前迭代剩余的代码,并直接跳到调整部分,然后开始下一次迭代的条件检查。循环中,循环体通常是一个代码块,它包含了需要检查的条件和所有需要执行的语句。语句的底部,它们之间所有的语句均被执行。匹配,使得代码的逻辑更加清晰。原创 2024-03-30 21:10:58 · 936 阅读 · 0 评论 -
《C和指针》(Kenneth Reek)精读——第三章:数据
描述变量的三个属性:作用域、链接属性和存储类型。这三个属性决定了变量的“可视性”(可以在声什么地方用)和“生命周期”。C语言的最基本的类型:整型、浮点型、指针和聚合类型(数组/结构体)整型包括:字符()、短整型()、整型()、长整型(),他们分别为有符号()和无符号()ANSI标准说明了各种整型值的最小范围,长整型至少应该和整型一样长(≥),整型至少应该和短整型一样长(≥) 或 至少16位, 或 至少32位,至于是16或者32位由编译器设计者决定。C99和C++11标准引入了、、、等类型定义,它们提供了更原创 2024-03-20 19:14:36 · 1021 阅读 · 0 评论 -
《C和指针》(Kenneth Reek)精读——第二章:基本概念(完结)
在以前的老式键盘中,类似“ [ ] { } ^| "等符号是没有的,当时为了解决这个问题,C语言中出现了所谓的“三字母词”现在很多编译器都不需要这个转义功能了,因为现在的键盘可以直接敲出这些字符。首先程序载入到内存,这个任务由操作系统完成,那些不是存储在堆栈中的尚未初始化的变量将在这个时候得到初始值。是一个局部变量,存储在堆栈上,如果没有显式初始化,则它不会得到自动初始值,其内容将是未定义的。(编译多个时),目标文件不会被删除,这就允许对程序进行修改后,只对改动过的源文件进行重新编译。原创 2024-03-18 21:47:46 · 574 阅读 · 0 评论 -
【数据结构(C语言描述)】队列
队列的基础知识,接口实现原创 2022-02-15 17:42:17 · 430 阅读 · 0 评论 -
【数据结构(C语言描述)】时空复杂度
关于时间复杂度和空间复杂度的知识原创 2021-10-11 21:09:35 · 702 阅读 · 0 评论 -
【数据结构(C语言描述)】栈
栈的基础知识,接口以及简单的选择题题型原创 2022-02-13 18:39:18 · 861 阅读 · 0 评论 -
【数据结构(C语言描述)】线性表之带头双向循环链表
线性表之带头双向循环链表原创 2022-02-12 18:13:32 · 598 阅读 · 1 评论 -
【数据结构(C语言描述)】堆
堆的基础知识,接口,应用(TopK问题,堆排序)原创 2022-02-18 22:17:23 · 585 阅读 · 0 评论 -
【数据结构(C语言描述)】线性表之顺序表
目录一、线性表二、顺序表 2.1 概念和分类 2.2 接口实现 1.初始化 2.扩容 3.销毁顺序表 4.打印数据原创 2021-10-16 23:07:02 · 456 阅读 · 1 评论 -
Top-K问题(建设ing)
问题描述1:N(很大)数据,求最大/最小前K个方法一:① 排序② 取前K个元素时间复杂度:O(NlogN)O(NlogN)O(NlogN)(时间最少的情况)方法二:堆排① 将N个数字插入堆中② 取堆顶,PopK次时间复杂度:O(N+KlogN)O(N+KlogN)O(N+KlogN)推导:(建设)问题描述2:N(超级大10个亿),数据只能以文件形式存储,K=100,求最大/最小前K个方法:堆排(以求最大前K个为例)① 取k个数据建立堆求最大前K个,建立小堆.原创 2022-02-18 22:16:26 · 61 阅读 · 0 评论 -
【数据结构(C语言描述)】线性表之无头单向不循环链表
链表 1.1 链表的概念及结构 1.2 接口实现 1. 1.3 顺序表和链表的区别 1.1 链表的概念及结构概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺原创 2021-10-24 16:24:44 · 99 阅读 · 0 评论 -
【数据结构(C语言描述)】应对期末考
《数据结构(C语言描述)》范翠香 罗作民 主编 宋昕 李晔 副主编原创 2021-09-20 19:23:39 · 430 阅读 · 0 评论 -
【数据结构】数据结构中应用题大全(完结)
本文总结了考试中几乎所有应用题原创 2024-01-08 16:50:05 · 815 阅读 · 0 评论 -
【数据结构(C语言描述)】环形队列
环形队列的数组和链表实现以及对应的接口原创 2022-02-17 16:53:46 · 4068 阅读 · 2 评论 -
【数据结构(C语言描述)】树的前置知识
树的概念,关于树的名词,树的存储结构原创 2022-02-20 18:07:09 · 533 阅读 · 1 评论 -
【LeetCode】面试题 17.04. 消失的数字的两种解法
Question:数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?示例 1:输入:[3,0,1]输出:2示例 2:输入:[9,6,4,2,3,5,7,0,1]输出:8...原创 2021-10-13 23:24:14 · 194 阅读 · 0 评论 -
【C语言】动态内存分配
详细解释动态内存函数以及一些常见错误原创 2021-10-13 20:55:31 · 204 阅读 · 0 评论 -
【C语言】scanf与回车的问题
Q:若scanf后紧接着又有一个scanf,如:scanf("%d",&h);scanf("%c",&c);那么第二个scanf会将上一个scanf遗留在缓冲区的\n放在c中,如何解决上述问题呢?S:方法一:利用getchar()将\n吸收scanf("%d",&h);getchar();scanf("%c",&c);方法二:若两个输入是连续的可以直接用空格隔开scanf("%d %c",&h,&c);方法三:从缓冲区跳过原创 2021-10-13 18:45:39 · 1545 阅读 · 0 评论 -
【C语言】自定义类型(结构体-枚举-联合)
结构体-枚举-联合详细知识原创 2021-10-10 18:22:25 · 321 阅读 · 0 评论 -
【C语言】自定义类型拓展——位段
位段相关知识原创 2021-10-10 16:17:51 · 106 阅读 · 0 评论 -
【C语言】offsetof宏的实现
offsetof宏的实现原创 2021-10-10 11:03:03 · 175 阅读 · 0 评论 -
【C语言】关于指针有♂趣的笔试题
目录题一:(简单)题二:题三:题四题一:(简单)//输出的结果为?int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int* ptr = (int*)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); return 0;}????解释:✅输出结果:题二://x86//假设p 的值为0x100000。 输出结果为?struct Test{ int Num;/原创 2021-09-17 12:03:10 · 193 阅读 · 8 评论 -
【C语言】数组和指针关于「sizeof」 「strlen 」经典易错面试题
目录例一:一维数组例二:字符数组例一:一维数组#include<stdio.h>int main(){ int a[] = { 1,2,3,4 }; printf("%d\n", sizeof(a[1]));//第二个元素 printf("%d\n", sizeof(&a[0]));//第一个元素的地址(4/8) printf("%d\n", sizeof(&a[0] + 1));//第二个元素的地址(4/8) printf("%d\n", sizeof(a)原创 2021-09-13 22:45:26 · 500 阅读 · 6 评论 -
【C语言】详细解读qsort()函数
目录一、qsort()函数简介一、qsort()函数简介[注]:部分转自菜鸟教程 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 头文件:stdlib.h &nb原创 2021-09-11 19:43:56 · 637 阅读 · 13 评论 -
【C语言】深度剖析指针
目录一、指针 1.1字符指针 1.1.1字符 1.1.2字符串 &n原创 2021-09-07 20:40:52 · 176 阅读 · 0 评论 -
【入门】C语言实现简单计算器
加减乘除简单功能的实现 鼠标版 功能up up and more准备知识函数指针数组(请戳)代码部分#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}int Mul(int x, int y){ return x * y;}int Div(int x..原创 2021-09-07 16:10:06 · 258 阅读 · 0 评论 -
【C语言】深度剖析数据在内存中的存储
目录一、准备知识 1.1原码、反码、补码 1.2大端、小端 1.3各数据类型所占字节数一览表二、数据在内存中的存储 2.1整型在内存中的存储  原创 2021-08-27 16:49:11 · 343 阅读 · 0 评论 -
【C语言】整形截断与整形提升经典题目
目录例一(详细)例二(简洁)例三(简洁)例一(详细)int main(){ char a1 = -1; signed char a2 = -1; unsigned char a3 = -1; printf("%d %d %d",a1,a2,a3 ); return 0;}所有常量,在没有后缀的情况下,默认是int型 -1原码:1000 0000 0000 0000 0000 00原创 2021-08-27 14:51:36 · 184 阅读 · 0 评论 -
【C语言】函数栈帧的创建和销毁
一、准备知识 1.1寄存器 32位CPU所含有的寄存器有:数据寄存器,指针寄存器,变址寄存器,段寄存器,指令指针寄存器,标志寄存器 1.1.1数据数据寄存器寄存器作用EXM: 累加寄原创 2021-08-24 21:59:03 · 293 阅读 · 0 评论 -
【入门】扫雷带界面(β版)
Part 1:功能实现 界面 插红旗???? 展开空白 记录用时⏲ 难度选择:简单/一般/困难/自定义 more…Part 2 :各部分详解2.1头文件一览#include<graphics.h> //使用easyx#include<stdio.h>#include<Windows.h>#include<stdlib.h>#include<time.h>//#include<tchar.h>//#in原创 2021-08-18 00:20:54 · 421 阅读 · 1 评论 -
【入门】C语言游戏之三子棋
目录part 1:流程介绍 1.1大体实现路线 1.2函数功能具体实现路线1.3头文件一览part 2:各部分详细解释2.1主函数2.2game部分2.2.1初始化棋盘2.2.决定先手后2.3打印棋盘 2.4玩家移动2.5电脑移动...原创 2021-07-29 22:23:30 · 140 阅读 · 0 评论 -
【C语言】关于数组的总结
先写二维数组,之后会将一维数组补上 (:目)一、二维数组的初见1.1二维数组的创建格式: int/char .... arr [ ][ ];解释: ① int/double/char ----二维数组的类型 ②arr ----数组名 ③[ ][ ] ---- 数组的行列1.2二维数组的初始化顺其自然型:int arr[这儿的数字可有可无][2]={1,2,3}...原创 2021-07-28 17:28:31 · 112 阅读 · 0 评论