
C/C++
Micrle_007
这个作者很懒,什么都没留下…
展开
-
猴子吃桃的递归问题
程序如下:#includeint total(int k){if(k=10)total_n=1;elsetotal_n=( total ( k + 1 ) + 1 ) * 2; *******************************************return total_n;}int main (){int total;原创 2015-06-21 15:52:22 · 2905 阅读 · 0 评论 -
C语言里面邻接表的创建
#include#includetypedef struct node{ int vex; struct node *link;}TD,JD; // TD 和 JD 是结构体 node 声明的变量,而且是全局变量void creatlist(TD* ad, int n){ JD *p; int i,j,k; for(k = 1;k<=n;k++) ad[k].lin原创 2016-05-26 22:21:48 · 940 阅读 · 0 评论 -
typedef struct 和 struct 的区别
本文转自:http://www.cnblogs.com/qyaizs/articles/2039101.htmlstruct和typedef struct分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a;转载 2016-05-07 22:14:28 · 422 阅读 · 0 评论 -
C++ 虚函数和纯虚函数的区别
本文来自:http://www.360doc.com/content/15/0108/14/20462199_439150183.shtml首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的转载 2016-05-21 18:49:28 · 361 阅读 · 0 评论 -
C++ 中类模板
本文来自:http://blog.sina.com.cn/s/blog_74a271040100tkmj.html1、在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?答:class用于定义类,在模板引入c++后,最初定义模板的方法为:template,这里class关键字表明T是一个类型,后来为了避转载 2016-05-21 21:09:59 · 379 阅读 · 0 评论 -
C语言数字转换为字符的问题
在C语言中整数 0 的 ASCII 值为 48,如果我们想把一个整形数字转换为字符,可以直接在整形上加一个数字:48,也可以直接在整形数字旁加上字符 ‘0’,比如我们想把整数 1 转换为字符 ‘1’,那么我们只需要在整数 1 上加上数字 48,即:1+48 = 49,也就是 1 的 ASCII 值,或者也可以用 1+‘0’ = ‘1’ 的形式转换为字符 ‘1’比如下面是一个把整形数字每一位原创 2016-06-04 10:55:46 · 1634 阅读 · 0 评论 -
C语言二叉树求叶子数
二叉树的终端节点也称二叉树的叶子,求二叉树的叶子数可以采用任何遍历算法,下面是求二叉树叶子数的一个例子:#include#includetypedef struct binode{ char data; struct binode *lchild, *rchild;}bitnode, *bitree; bitree createbitree(){ bitree t; c原创 2016-06-06 15:46:30 · 3869 阅读 · 0 评论 -
C语言求二叉树的高
用递归算法求二叉树的高程序如下:int treedepth(bitree t){ int h,lh,rh; if(t == NULL) h = 0; else{ lh = treedepth(t->lchild); rh = treedepth(t->rchild); if(lh>=rh) h = lh+1; else h = rh+1; } re原创 2016-06-06 17:46:46 · 649 阅读 · 0 评论 -
C 指针
由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元以前总是把指针错误的误导为一个针,现在理解,它的值存储的是一块内存区域,哎,时间一长就会对指针的理解扭曲。。。。原创 2016-06-06 10:29:20 · 395 阅读 · 0 评论 -
C语言字节对齐方式
看一个小程序如下:struct S{char c1;int i;char c2};那么这个结构体在计算 sizeof(S) 的值是多少呢?是不是1+4+1=6?答案当然不是 6,这是由于sizeof 在计算字节的时候会有一个字节对齐准则:1、结构体变量的首地址能够被其成员里面,字节最宽的基本类型成员所整除;2、结构体的每个成员相对于结构体首地址原创 2015-09-26 09:37:16 · 529 阅读 · 0 评论 -
C语言中 malloc,calloc 和 realloc 函数之间的区别
本文来自:http://blog.sina.com.cn/s/blog_9d38f2eb01010mnb.html 内存区域可以分为栈,堆,静态存储区和常量存储区。局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取的方式都是由编译器自动执行的。C 标准函数库提供了许多函数来实现对堆上内存管理,其中包括:malloc 函数,free 函数,calloc 函数和 rea转载 2016-05-13 12:47:11 · 696 阅读 · 0 评论 -
C语言数据结构之图的邻接矩阵的应用实例
图的存储结构有 3 种形式:邻接矩阵、邻接表 和 邻接多重表对于一个有 n 个顶点的图,其顶点信息可以用一个一维数组表示,而顶点间是否有相邻的关系,可以用邻接矩阵(Adjacency Matrix)来表示。若 G 是一个有 n 个顶点的图,则 G 的邻接矩阵 A 是具有如下性质的 n 阶方阵:带权的图成为网,下面给出一个程序来构建一个原创 2016-05-24 21:00:24 · 1447 阅读 · 0 评论 -
C语言的 typedef 关键字
typedef 是 C 语言的关键字,用于声明基本数据类型的别名如: typedef int a;则声明了一个 int 类型的别名 a,这个 a 不再是一个变量,而是 int 的别名,可以用 a 来代替 int 来声明其他整形变量,如: a name; 就是声明了一个整形变量 name类型别名和类型名字是等价的,类型名字能出现的地方就能使用类型别名但是下面一种原创 2016-04-28 18:59:35 · 651 阅读 · 0 评论 -
用c语言判断计算机是大端模式还是小端模式
#includeint main(void){int a;int *pa;pa = &a;a = 0x11223344;if(0x44 == *(char*)pa)printf("小端模式\n");elseprintf("大端模式\n");return 0;}赶快试试吧!原创 2015-08-05 15:26:04 · 1093 阅读 · 0 评论 -
c语言里,关于宏定义的使用
宏定义最关键的是要注意它只是一个文本替换,不注意的话,很容易引起歧义,看下面一段代码:#include#define M( x ) ( x*x )int main(){int a, b= 3;a = M( b+2 );printf ("%d\n" , a );return 0;}这里的 M 是想要得到 x 的平方,而在程序中调用的参数为 b+2 ,原原创 2015-09-25 09:31:19 · 589 阅读 · 0 评论 -
复杂指针的声明
// 五星级重要度使用右左法则:首先从未定义的标识符看起,然后往右看,再往左看。每当遇到圆括号时,就应该调转阅读方向。一单解析玩圆括号里面所有的东西,就跳出圆括号。重复这一过程,知道整个声明解析完毕。看下面几个例子:// int (*func) (int *p)首先找到那个未定义的标识符:func,它的外面有一堆圆括号,而且左边是一个 * 符号,说明func是一个指针; 然后跳原创 2015-09-28 19:30:00 · 396 阅读 · 0 评论 -
对指针的一点感悟
首先来看2张图片:这个程序是将二维数组 a 里面的元素输出出来,但是左图给指针赋值可以,但是右图不行,为什么?因为p是一个数组,对于数组而言,p是一个常量,常量的地址是固定的,所以p=a相当于给常量赋值,这当然是不行的,语法上就是错误,而在左边,相当于对数组p里的元素赋值,元素的地址虽然确定了,但是元素的内容可以修改,他的元素内容是两个指向整型变量的指针,指针也是一种数据类型,更是原创 2015-06-21 15:56:39 · 809 阅读 · 0 评论 -
指针数组和数组指针
看一个例子:#include void main( int argc , char *argv[]){int arr[4][4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int (*p1) [4] ;int *p2[4] ;int i,j,k;p1=arr;//使用数组指针的方式访问二维数组 arrfor ( i=0;原创 2015-09-18 21:30:19 · 359 阅读 · 0 评论 -
枚举类型
枚举类型就是一一列举,在C语言中有一种枚举类型,其含义就是将具有相同属性的一类数据一一列举出来。枚举类型的一般定义形式为: enum 枚举类型名 {标识符 1 [ = 整形常数 ],......标识符 n [ = 整形常数 ],};其中 [ ] 中的部分可有可无。枚举类型是有序类型,如果没有为枚举类型常量指定值,那么它的值比前一个值大原创 2015-11-12 19:50:38 · 716 阅读 · 0 评论 -
C/C++语言杂谈
// sizeof不能用来计算字符串的长度,计算字符串长度的函数为strlen() 函数,strlen函数计算字符串长度的时候不包含后面的‘\0’// 一般的参数传递属于值传递,当数组作为参数传递的时候,是地址传递,在子函数里面有两种写法:1、void function( char str[ ] )2、void function( char *str )(也可以是其他类型)原创 2015-09-28 10:42:47 · 574 阅读 · 0 评论 -
lambda 函数或者匿名函数(C++11)
lambda 函数也就是没有名字的函数,一般情况下,在任何地方,如果需要把一个函数作为参数给出,但你宁愿给出一个简短即时函数定义,而不是一个指向源文件其他地方或者另一个模块中提供的定义的指针时,lambda 函数可能是有用的,lambda 函数可以作为“动态”给出的一个快捷方便的函数,而不是正式定义的函数,因为 lambda 函数可以在使用的地方定义,所以很容易看出它是做什么工作的,而无需通过源代原创 2015-11-26 14:55:30 · 698 阅读 · 0 评论 -
C语言里面的 malloc 函数
本文转自:http://blog.youkuaiyun.com/xw13106209/article/details/4962479void *malloc(int size); 说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。这个在MSDN上可以转载 2016-04-28 15:22:31 · 777 阅读 · 0 评论 -
vs如何运行外部 C++ 文件
首先新建一个 C++ 项目,创建好之后,在项目里面找到“源文件”,然后右键——>添加文件,找到你的 C++ 文件,添加进去之后就可以编译了原创 2017-03-03 19:55:15 · 5071 阅读 · 1 评论