初学
文章平均质量分 82
晓看世非梦真
这个作者很懒,什么都没留下…
展开
-
内存对齐
内存对齐目的为什么要内存对齐呢?一切都是为了提高cpu的效率。cpu中存在的一个区域叫做寄存器,专门用来接收,存储,输出二进制代码。为了提高效率,寄存器读取数据的时候,只会按照一定的位数来读。这就好比有一串密码,当你知道它是4个数字为一位的等长编码时,只需要4个数字4个数字一划分,然后对照密码表就好了。而假如它是不等长编码,那么你就要1个数字1个数字的加进去不断对照密码表来解码。那么问题就来了,假如只能按照一定位数来读,那么假如存储的数据占据的内存的大小都不一样,就比如:在结构体A中,a占一个字节,原创 2021-01-20 13:29:30 · 120 阅读 · 0 评论 -
递归
递归递归,就是函数直接或间接调用自己的一种算法。个人理解和数学中的数列相类似。递归的递推关系就是数列的递推公式,递归出口就相当于数列的首项,而递归的参数就相当于数列的项数。下面先看例子:第五个人说他比第四个人多两岁,第四个人说他比第三个人多两岁,第三个人说他比第二个人多两岁,第二个人说他比第一个人多两岁,第一个人说自己10岁。问:第五个人多少岁?针对这个问题我们可以轻易地写出其递推关系。首先定义一个能够表示第n个人年龄的函数Age(n)。根据题意,我们能够得到:Age(5)=Age(4)+2原创 2021-01-17 11:04:15 · 118 阅读 · 0 评论 -
利用指针在子函数中交换两个整数的值
利用指针在子函数中交换两个整数的值在子函数中,系统会把主函数传递进来的参数进行拷贝,并对拷贝的数据进行处理,这样就能在得到结果的同时不改变主函数中原本的值。那么假如我们想要在子函数中,改变主函数中的值要怎么做呢?这时,就需要指针了。情况一假如我们不使用指针,只用交换的普通三段式,结果会怎么样呢?代码如下:#include<stdio.h>void Swap(int a,int b){ int tmp=a; a=b; b=tmp;}int main(){ int a=1原创 2021-01-16 17:19:47 · 2749 阅读 · 0 评论 -
求正整数的位数及正序逆序输出
求正整数的位数及正序逆序输出正整数,在计算机中是作为一个整体来进行存储的。而本次将正整数正序输出和逆序输出都需要我们将其每一位上的数字单独提取出来,按照相应的次序进行输出。为了提取正整数每一位的数字,我们可以借助for循环根据10进制数字的数学关系用相应的计算得出。而为了方便确定for循环的起点和终点,我们会优先求出该整数的位数,在此基础上再进行前面的操作。求整数的位数在这里,我们单独建立一个函数Getnum来达到目的。不但方便了以后的调用,而且不论我们在子函数中对该正整数进行什么样的操作,都不会影原创 2021-01-15 19:09:50 · 3408 阅读 · 0 评论