c语言
小癞子
这个作者很懒,什么都没留下…
展开
-
结构体对齐详解
1.首先理解一下什么是结构体对齐: 许多计算机系统对基本类型数据在内存中存放的位置有限制,要求数据的起始地址需是k(对齐数)的倍数,这样可以提升读取数据的速度。而这里的对齐数也不是任意值,只能是内置类型已有的字节数(1,2,4,8....),在默认情况下,VS中的值为8,Linux中的值是4,当然也可以通过在struct之前加上#pragma pack(4)设置,括号里就是你设置的对齐数,#p...原创 2018-08-27 23:14:08 · 537 阅读 · 0 评论 -
斐波那契的递归和非递归解法
斐波那契数列:像1,1,2,3,5,8.....这样的数列通常定义为:F(1)=1,F(2)=2,F(n)=F(n-1)+F(n-2)(n>2)非递归解法如下:int Fibonacci(int n) { int ret[2]={0,1}; if(n<2) { return ret[n]; ...原创 2018-09-22 10:25:40 · 402 阅读 · 0 评论 -
青蛙跳台阶问题
题目一:一只青蛙一次可以跳上一级台阶,也可以跳上两级台阶。求该青蛙跳上一个n级台阶总共有多少种跳法分析:当n=1时,只有一种跳法;当n=2时,可以一次跳一级,也可以一次跳2级,有两种跳法当n>2时,第一次跳的时候有两种选法,只跳一级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1) 第一次跳2级,此时跳法的数目等于后面剩下...原创 2018-09-22 11:05:44 · 307 阅读 · 0 评论 -
模拟实现字符串拷贝,比较等函数
1.模拟实现strcpychar* my_strcpy(char* dst, const char*src){ assert(dst != NULL); assert(src != NULL); char *ret = dst; while (*dst = *src) { dst++, src++; } return ret;}2.模拟实现strncpycha...原创 2018-09-29 20:13:41 · 359 阅读 · 0 评论