C
文章平均质量分 72
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。要想学好编程就应该深入了解计算机底层的东西
云疏不知数
一个人知道自己为了什么而活,他就能够忍受任何一种生活----尼采
展开
-
C内存区划分
原创 2020-10-05 12:43:12 · 155 阅读 · 0 评论 -
11.char类型原码反码补码移码
在这里先向大家道个歉,之前在char类型-128到127文章中没有讲清楚原反补的具体求解过程,并且犯了严重的错误,补码-128是不存在源码和反码.简单介绍一下源码和反码的取值范围都是-127到+127,并且0都存在两种状态+0和-0。补码中0只有一种状态00000000,并且1000000代表-128,这也就是补码取值范围是-128到+127的原因了。-127-126-125……-3-2-1-0+0123……125126127原111111111原创 2020-08-17 16:32:09 · 809 阅读 · 0 评论 -
10.文件IO
文件指针每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名FILE.例如,VS2008编译环境提供的stdio.h 头文件中有以下的文件类型申明:struct _iobuf{ char*_ptr; int _cnt; ...原创 2020-02-19 19:20:25 · 258 阅读 · 0 评论 -
9.柔性数组
C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。例如:typedef struct st_type{int i;int a[0];//柔性数组成员}type_a;有些编译器会报错无法编译可以改成:typedef struct st_type{int i;int a[];//柔性数组成员}type_a;柔性数组的特点:结构中的柔性数...原创 2020-03-01 14:26:49 · 167 阅读 · 0 评论 -
8.动态内存管理malloc calloc realloc free
malloc描述 C 库函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针。 声明 下面是 malloc() 函数的声明。 void *malloc(size_t size) 参数 size – 内存块的大小,以字节为单位。 返回值 该函数返回一个指针 ,指向已分配大小的内存。如果请求失败,则返回 NULL。 ...原创 2020-03-01 14:26:12 · 268 阅读 · 1 评论 -
7.自定义类型 结构体类型创建 结构体初始化 结构体内存对齐 位段,位段计算机大小 枚举+联合
知识点:(一)结构体类型创建struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 char id[20];//学号};struct Stu stu1 = {"zhangsan", 20, male, "128782758"}; //创建一个叫stu1的结构体并初始化//匿名结构体类型//匿名结构体类型...原创 2019-09-07 22:40:57 · 230 阅读 · 0 评论 -
6.mem函数
memcpy描述C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n 个字符到存储区 str1。声明下面是 memcpy() 函数的声明。void *memcpy(void str1, const void str2, size_t n)参数str1 – 指向用于存储复制内容的目标...原创 2020-03-01 14:17:23 · 335 阅读 · 0 评论 -
5.字符串相关函数
size_t strlen(const char *str)#include<string.h>·字符串已经’\0’作为结束标志,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)。·参数指向的字符串必须要以’\0’结束。·注意函数的返回值为size_t,是无符号的(易错)·strlen函数的模拟实现例子:/* strlen exa...原创 2020-03-01 14:14:46 · 220 阅读 · 0 评论 -
4.指针进阶(字符指针,const修饰字符指针,指针数组,数组指针,函数指针,函数指针数组 )
学好指针的前提知识1.数组名单独出现在sizeof操作符中,数组名表示整个数组,计算的是整个数组的大小(byte)2. & 数组名,这里的数组名表示整个数组,取出的是整个数组的地址除以上两种情况外数组名表示的都是数组首元素地址一字符指针:指向字符的指针eg:int main(){ char a = 'w'; char* pc = &a; char ar...原创 2019-07-30 18:31:32 · 395 阅读 · 0 评论 -
3.判断大端还是小端存储
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。验证当前机器是大端还是小端存储#include <stdio.h>int check_sys(){ int i = 1; return (*(char*)&i);}i...原创 2020-03-01 13:21:37 · 181 阅读 · 0 评论 -
2.int所能存放的最大最小整数
int范围:2147483648+2147483647原创 2020-03-01 13:20:16 · 921 阅读 · 0 评论 -
1.char类型-128到127
原创 2019-12-15 10:08:21 · 467 阅读 · 0 评论 -
8.三子棋游戏(电脑可围堵,可通过宏任意改变棋盘大小)
头文件game.h#pragma once#define _CRT_SECURE_NO_WARNINGS 1#include <time.h>#include <stdio.h>#include <stdlib.h>#include <Windows.h>#define ROW 3#define COL 3void In...原创 2020-03-01 15:07:51 · 330 阅读 · 0 评论 -
11.可以连片展开的扫雷小游戏(可以同过宏定义改变扫雷的棋盘大小和雷的个数)
这个扫雷游戏最大的两个成功之处是一可以宏定义更改ROW和COL以及EASY_COUNT的值,ROW和COL是扫雷棋盘的行和列大小,而EASY_COUNT修改的是雷的总个数二可以实现一整片区域都没有雷的时候成片展开如下图:输入2 4坐标以(2 ,4)坐标处及周围没有雷便连片展开InitBoard //初始化扫雷的棋盘全部初始化为字符’0’SetMine //随机设置雷(用了...原创 2019-07-29 20:36:40 · 469 阅读 · 0 评论 -
进阶的笔试题
笔试题1#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int* ptr = (int*)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); return 0;}//程序的结果是什...原创 2020-03-01 14:35:47 · 372 阅读 · 0 评论 -
用C语言实现无头单链表学习心得
一首先讲第一种无头单头不循环的单链表是通过指向单链表头结点的结构题指针来维护的//定义单链表结点typedef struct SListNode{ SLTDataType data; struct SListNode* next;}SListNode;typedef struct SListNode* SList;//控制单链表的方法(接口)void SListIn...原创 2019-09-13 12:05:37 · 367 阅读 · 0 评论 -
用非递归,递归和迭代求第n个斐波那契数的优劣对比
#define _CRT_SECURE_NO_WARNINGS 1/*author: 逺哥*/#include <stdio.h>#include <string.h>#include <stdlib.h>// 非递归,递归以及迭代分别实现求第n个斐波那契数。//非递归int Fibonacci1(int n){ int arr[999...原创 2019-07-19 19:40:04 · 223 阅读 · 0 评论 -
数单词个数的代码实现 gets与scanf的使用环境
帮朋友改程序时,起初朋友发给我的版本只对逻辑进行稍加修改,但发现其实有很大的不足#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ int word = 1;//初始化单词的个数 char a[999] = { 0 }; int i = 0;//有单词情况下的下标 (void)scanf("%s"...原创 2019-07-26 21:01:47 · 286 阅读 · 0 评论 -
二分查找边界问题即判断语句
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int binartSearch(int arr[], int len, int key) //arr[] 相当于 *arr(就是指针){int left = 0;int right = len;//右边的下标,sizeof(arr) / sizeof(arr[0])目的是...原创 2019-07-23 18:23:03 · 189 阅读 · 0 评论 -
对于int最大正整数和最小负整数的理解及验证
原创 2019-12-15 10:06:50 · 1391 阅读 · 0 评论 -
字符串和整数之间互相转换
atoi: 把字符串转换成整型数itoa: 把整数转换为字符串/*example of atoi and itoa*/#include <stdlib.h>#include <stdio.h>{int main(void)int number = 12345;char string[25];itoa(number, string, 10);print...原创 2020-02-19 19:28:08 · 714 阅读 · 0 评论 -
printf函数格式选择
int printf(const char *format, …)format – 这是字符串,包含了要被写入到标准输出 stdout 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是 %[flags][width][.precision][length]specifier格式字符%d 以十...原创 2020-02-19 19:23:06 · 348 阅读 · 0 评论 -
C标准的标识符
原创 2020-02-19 19:22:21 · 283 阅读 · 0 评论