C语言
文章平均质量分 74
hsynbnb
这个作者很懒,什么都没留下…
展开
-
由浅入深带你剖析数据的在内存中的存储(1)
浅谈 c本身具有的类型: 整型: char short int long long long 浮点型: float doubl 虽然 int 和 float都是4byte,但是视角不一样一个认为整型另一个认为浮点型。 int main() { signed short int a=0; unsigned short b=0; char c;//有符号?还是无符号? //取决于编译器,大部分的编译器下char就是signed char,其他数据类型也是同样的道理 }原创 2021-09-18 00:04:08 · 178 阅读 · 0 评论 -
又菜又爱玩的函数栈帧的创建与销毁
寄存器 寄存器 eax;ebx;ecx;edx 特别的 esp;ebp esp,ebp这两个寄存器是用来存放地址,来维护函数开辟的栈帧 函数每一次的调用都会在栈区开辟新的空间 调用逻辑 整体调用的逻辑 这里以一个简单程序为例子 #include<stdio.h> int Add(int x, int y) { int z = 0; z = x + y; return z; } int main() {原创 2021-09-11 06:48:24 · 633 阅读 · 0 评论 -
数据结构之排序算法及升级
选择排序 1.选择排序思路 第一组选择排序: 当看见一个数组,使用排序的思路其实就是找到数组中的最小值,然后将其与数组第一个元素进行交换,其目的是将最小值放在最前面。我们称这一个过程为一组排序 如图: 第二组选择排序: 将第一个元素排除形成一个新的数组再一次找到新数组的最小值 ,然后将最小值和新数组第一个元素进行交换 同样的第三组选择排序也是同样的原理进行一组选择排序剔除一个数形成一个新的数组。 图中例子的数组一共有十个元素那么需要进行多少组选择排序? 答案是9次.原创 2021-09-06 15:04:03 · 166 阅读 · 0 评论 -
C陷阱与与缺陷(1)
例子分析 int main() { int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; for (i = 0; i <= 12; i++) { arr[i] = 0; printf("hehe\n"); } return 0; } 代码很容易看出出现了越界,运行的结果也是死循环。出现这种情况我们就需要进行调试分析 当循环到arr[9]也就是i=10最后一个元素的时候.因为数组再内存中连续的空间所有虽然数组访问越...原创 2021-09-05 18:15:45 · 90 阅读 · 0 评论