c/c++
文章平均质量分 56
一醉不醒
这个作者很懒,什么都没留下…
展开
-
sizeof用法分析
· 1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t. 看到return这个字眼,是不是想到了函数?错了,sizeof不是一个函数,你见过原创 2010-07-15 13:32:00 · 443 阅读 · 0 评论 -
c++中类模板的声明和定义中把.h与.cpp分离时编译文件包含问题
c++中类模板的声明和定义中把.h与.cpp分离1.声明部分// Template_test.htemplateclass CTpl { public: CTpl();virtual ~CTpl();void Test(T t); };2.实现部分// Template_test.cpp#inc原创 2017-07-07 18:08:29 · 513 阅读 · 0 评论 -
c++的const用法
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码转载 2017-07-07 14:50:09 · 189 阅读 · 0 评论 -
static
static的作用 <br />在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。<br />(1)先来介绍它的第一条也是最重要的一条:隐藏。<br />当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。<br />下面是a.c的内容char a = 'A'; // global variable<br />void msg() <br />{<br原创 2011-03-31 22:42:00 · 450 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫(josephus)环:假设有n个小孩坐成一个环,并且从第一个小孩开始数,如果数到m个小孩,则该小该离开,问最后留下的小孩是第几个小孩? 例如:总共有6个小孩,围成一圈,从第一个小孩开始,每次数2个小孩。游戏情况如下:小孩序号:1,2,3,4,5,6 离开小孩序号:2,4,6,3,1 最后获胜小孩序号:51、简单办法:(如果只要求输出最后获胜的小孩编号,以下办法可以采用---具体数学第一章有一节专门讲这个的)view plaincopy to clipboardprint?无论是用链表实现还是用数组实转载 2011-01-25 09:53:00 · 604 阅读 · 0 评论 -
字符转成数字
<br />#include "Stdio.h"<br />#include "Conio.h"<br />int strint(const char *str);<br />main()<br />{<br /> int n;<br /> char p[]="-123";<br /> n=strint(p);<br /> printf("%d",n);<br /> getch();<br />}<br />int strint(const char *str)<br />{<原创 2011-01-24 15:00:00 · 535 阅读 · 0 评论 -
数字转成字符
<br />#include "Stdio.h"<br />#include "Conio.h"<br />main()<br />{<br /> int i,k=0;<br /> int num=12345;<br /> char c,s[10];<br /> while (num>0)<br /> {<br /> c=(num%10)+'0';<br /> s[k++]=c;<br /> num/=10;<br /> }<br原创 2011-01-24 15:24:00 · 572 阅读 · 0 评论 -
关于strcpy源码分析
注意到一个帖子: ((*strDest++=*strSrc++)!='/0'); 哪儿前辈可以解释下里面具体执行的步骤呢?对于这样的表达式,我们通常会有这样三种看法:1.这种写法不但没有错误(当然也没有BUG),而且写法紧凑。2.这种写法虽然没有错误,但是不够直观,理解起来有点麻烦,可能还会导致理解错误。3.这种写法中存在未定义的地方,执行结果可能是错误的。粗略来看,这三种说法都有点道理。我顿时有了刨根问底的兴趣,想对这个问题进行一次深入的分析。对于这种组合表达式,在分析的时候我们应该抓住两个关键的概念转载 2010-08-17 15:07:00 · 353 阅读 · 0 评论 -
C++中if、#if与#ifdef、#ifndef彼此的区别
以#开头的都是预编译指令,就是在正式编译之前,编译器做一些预处理的工作#if 条件语句程序段1 //如果条件语句成立,那么就编译程序段1 #endif程序段2//如果条件不语句成立,那么就编译程序段2 #ifndef x//先测试x是否被宏定义过 #define 程序段1 //如果x没有被宏定义过,那么就编译程序段1 #endif 程序段2 //如果x已经定义过了则编译程序段2的语句,“忽视”程序段1。 #ifdef x //先测试x是否被宏定义过 程序段1 //如果x被宏定义过,那原创 2010-08-03 11:24:00 · 513 阅读 · 0 评论 -
int a[100],a代表什么,sizeof(a)=?a[100]代表什么,sizeof(a[100])=?
int a[100],a代表什么,sizeof(a)=?a[100]代表什么,sizeof(a[100])=?答案:int a[100]:声明了一个有100个int类型元素的数组, 数组下标从0~99, 所以a是数组名, 代表数组的首地址, 也就是&a[0], sizeof(a)返回数组a在内存中所占的空间大小,以字节为单位, 也就是sizeof(a) = sizeof(int) * 100 = 4 * 100 = 400bytesa[100],这种写法是不对的, 数组的最大下标是99, a[100]已经超原创 2010-07-16 09:51:00 · 6329 阅读 · 0 评论 -
c/c++中typedef的用法
typedef的使用方法:格式: typedef existing_type new_type_name ; 【注】: typedef 并不创建新的类型。 它仅仅为现有类型添加一个同义字。typedef最简单使用:格式: typedef int size; type转载 2017-08-31 15:22:00 · 405 阅读 · 0 评论