c
qq_1378466420
这个作者很懒,什么都没留下…
展开
-
关于指针+-数字 问题
看下面语句int arr =[10]={1,2,3};int *p=arr;p++;指针加一我们想象中有常见两种猜想1.加一个字节2.加一个单元格如图所示假设指针手地址为100,指针变量占4个字节。上图放的四倍得到下面图0x00000001**(注 16进制)**pc小端(小端:低地址放小数据 。大端:低地址放大数据)上图演示了猜想1.会发现得到的结果有点意想不到。明显...原创 2018-10-26 15:46:45 · 369 阅读 · 0 评论 -
关于数组越界
看下面一个程序代码#include<stdio.h>int main(){int i;int arr[10];for(i=0;i<=10;i++){arr[i]=0;printf("%d\n",i);}}运行结果如图程序崩溃了0.0首先说一下数组的内存分配:程序崩溃的原因是i=10的时候继续执行,进而企图改变i的值vs2012为了防止越界进行某...原创 2018-10-26 16:18:36 · 380 阅读 · 0 评论 -
有一个集合由A-Z这26个字母组成,打印这个集合的所有子集
#include <stdio.h>void fun(int n){const char *str = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;int maxnum = 1<<n;for(int i=0;i<maxnum;i++)//处理0到2^n -1之间的数字{for(int j=0;j<n;j++)//j表示二进...转载 2019-01-19 17:02:43 · 1013 阅读 · 1 评论 -
C语言基础
一、内容提要1、进制表示;2、原码、反码、补码;3、整型数据类型;4、浮点类型。二、内容详解1、进制表示:进制以十进制为例1234.5=110^3 + 210^2 + 310^1 + 410^0 + 510^-1 (按权展开求和)。其它进制转十进制都是按权展开求和,比如十六进制0x123=116^2 + 216^1 + 316^0十进制转其它进制:整数部分:基数除法,倒序取余。...原创 2019-03-30 20:58:12 · 876 阅读 · 0 评论 -
斐波拉数列
斐波拉数列的递归算法与非递归算法分析斐波拉切数列指的是这样一个数列:1、1、2、3、5、8、13、21、34·······由此可以得到如下的递推公式:F(1) = 1, F(2) = 1, F(3) = F(2) + F(1) ·· 由此可以计算出第n项的值为: F(n) = F(n-1) + F(n-2)非递归算法 O(n)=nint fabio_for(...原创 2019-05-14 19:13:04 · 4894 阅读 · 0 评论 -
汉诺塔 递归实现
游戏简介:游戏里有三根金刚石柱子,左边的柱子上从下往上按照大小顺序摞着N片黄金圆盘。玩家需要做的是把圆盘从下面开始按从大顺序重新摆放在右边的柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 void Move(char a,char b){ printf("%c->%c\n",a,b);}void Hanio(int n,char a,char...原创 2019-05-14 19:40:18 · 181 阅读 · 0 评论 -
++a和a++的区别
++a表示取a的地址,增加它的值。然后把值放在寄存器中;a++表示取a的地址,把它的值放在寄存器中,然后增加内存中的值。(操作时用到的是寄存器中的值,自增前的值)总结1,前置返回引用,后置返回const对象2.处理内置类型的对象时,前置和后置没有太大的区别,但是处理自定义对象时,应该尽可能的使用前置3.后置操作符以前置操作符为基础完成4,前置++效率更高,因为后置++会生成...原创 2019-08-17 10:36:38 · 5142 阅读 · 0 评论