自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 C语言结构体的内存对齐

C语言结构体的内存对齐如何计算该结构体的大小?首先得掌握结构体的对齐原则。1.第一个成员在于结构体变量偏移量为0的地址处2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处对齐数 编译器默认的一个对齐数 与 该成员大小的较小值。注:(Linux-gcc没有默认对齐数,vs的默认对齐数为8)3.结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍4.如果是嵌套了结构体的情况,嵌套的结构体对齐到自己的最大整数倍处,结构体的整体大小就是所有最大对齐数(包含嵌套结构体的对齐数)的整数倍

2021-12-10 14:31:11 238

原创 自定义数据类型-结构体

C语言自定义数据类型——结构体

2021-12-10 00:19:31 568

原创 C语言字符串函数使用与剖析

字符串的使用和剖析函数介绍一、strlen()size_t strlen(const char *str);字符串已经’\0’作为结束标志,strlen()函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’)。参数指向的字符串必须要以’\0’结束。注意函数的返回值为size_t,是无符号的(易错)。4.strlen()函数的模拟实现。//size_t == unsigned int//两者表达等价#include<stdio.h>#include&lt

2021-12-08 14:05:17 254

原创 C语言左转字符串实现方法总结

C语言指针进阶int main(){int aa[2][5] = {10,9,8,7,6,5,4,3,2,1};int *ptr1 = (int *)(&aa + 1);int *ptr2 = (int *)(*(aa + 1));printf("%d,%d",*(ptr - 1), *(ptr2 - 1));return 0;}

2021-12-07 12:42:40 420

原创 指针经典习题

struct Test{int Num;//4char *pcName;//4 short sDate;//2char cha[2];//2short sBa[4];//8}*p;//假设p 的值为0x100000,如下表达式的值分别为多少?int main(){p = (struct Test*)0x100000;printf("%p\n",p + 0x1);printf("%p\n",(unsigned long)p + 0x1);printf("%p\n",(unsigne

2021-12-04 22:21:44 569

原创 C语言sizeof和strlen使用时遇到的“坑”

**sizeof:**返回一个对象或者类型所占的内存字节数**strlen:**返回字符串的长度一.sizeof1)*数组名大多数情况下指的是数组的首元素地址,但在sizeof(数组名)表示的却是整个数组。数组名只有在 sizeof(数组名) 和 &数组名 的情况下表示整个数组,其他所有情况表示首元素地址。int main(){//数组名是首元素地址//1.sizeof(数组名)- 数组名表示整个数组int a[] = {1, 2, 3, 4};printf("%d\n

2021-12-03 21:50:30 705

原创 C语言二叉树的建立、遍历及遍历线索化

什么是树结构树(Tree)是n(n≥0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:(1)有且仅有一个特定的成为根(Root)d的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2… …Tm,其中每一个集合本身又是一颗树,并且成为根的子树(SubTree)。可以看到不同结点的孩子个数可以是0、1、2、3… …什么是二叉树?二叉树也是n(n≥0)个结点的有限集。与树定义不同的是,该集合或者为空集(成为空二叉树),或者有一个根结点和互不相交的左子树和右

2021-12-02 11:14:23 224

原创 KMP模式匹配算法改进

看这篇文章的前提是你已经了解过KMP模式匹配算法。针对KMP模式匹配算法中存在的无意义匹配进行优化。代码参考《大话数据结构》第五章第七节143页。/*改进KMP模式算法*//*求模式串T的next函数修正值并存入数组nextval*/void get_nextval(char* T, int* nextval){ int i, j; i = 1; j = 0; nextval[1] = 0; while (i < T[0])/*此处T[0]表示串T的长度*/ { if (

2021-11-29 16:25:08 170

原创 KMP模式匹配算法回溯问题

最近在学数据结构,看到串这一章节,被一个叫KMP模式匹配算法的给卡住了,去网上找相关的解读。https://blog.csdn.net/starstar1992/article/details/54913261?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.no_search_link&depth

2021-11-29 14:06:30 142

原创 “扫雷”C语言实现(含炸开效果)

“扫雷”C语言实现(含炸开效果)game.h#include<stdio.h>#include<stdlib.h>#include<time.h>enum Option{ rows = 9, cols = 9, Rows = rows + 2, Cols = cols + 2, Difficulty = 10}; void menu();void InitBoard(char Board[Rows][Cols],int Row,int Co

2021-11-23 12:42:22 580

原创 C语言操作符分类

操作符分类操作符可以分为:算数操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号操作符下表引用、函数调用和结构成员(一)算数操作符:加(+) 减(-) 乘 (*)除(/ ) 取模(%)新手要注意的一点就是,整数乘除法运算只能得到整数。(二)移位操作符int a =16;//>> 右移操作符//移动的是二进制位int b =a>>1;右移操作符:1.算数右移右边丢弃,左边补原符号位2.逻辑右移右边丢弃,左边补

2021-11-22 21:37:28 446

原创 C语言寻找“单身狗”问题总结

寻找“单身狗”编程问题总结单身狗问题,即寻找数组中只出现过一次的数,别人都是一对一对的(该数在数组中出现过两次),只有它是一个人(数组中只有一个),就像“单身狗”一样,显得格外瞩目。不过该问题可以继续延伸,单身狗也可以是2个、甚至是3个。下面是对各类单身狗问题的个人总结,相比于同类文章,本次总结会更全面。一、只有一个单身狗的情况方法一:先排序后比较(在网上看到的)。首先利用冒泡排序对数组元素进行排序(从大到小或从小到大都可以),相同元素经过排序后会相邻互相挨着,所以我们只需要把相邻元素两两比较就可以

2021-11-22 19:08:15 1107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除