
C/CPP
小爷永远不死
不走到最顶峰,就永远不知道世界有多大
展开
-
explicit构造函数
explicit构造函数按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 =String(“hello原创 2013-08-08 13:25:35 · 514 阅读 · 0 评论 -
scanf()与gets()的冲突
scanf()是C/C++的标准输入函数,其作用是从输入流(缓冲区)中读入数据到指定的地址中。以空格、回车、制表符为输入字符串的结束标志,不会将其读入目标地址中。gets()是在stdio.h中的输入函数,也是从标准输入流中读取一行字符到指定的字符串中,它只有在遇到EOF或回车换行符时才会结束,也不将其读入,而是在末尾添加一个NULL作为结束标记。所以gets()常用来读入一整行字符,而无原创 2014-02-19 10:58:32 · 4336 阅读 · 1 评论 -
C语言的那些秘密之---函数返回局部…
一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意原创 2014-02-19 10:58:15 · 535 阅读 · 0 评论 -
C++中的四舍五入方法
原文地址:C++中的四舍五入方法作者:魔岩方法一:使用setprecision(n)可控制输出流显示浮点数的数字个数,C++默认的流输出数值有效位是6。 如果setprecision(n)与setiosflags(ios::fixed)合用,可控制小数点右边的个数。setiosflags(ios::fixed)是用定点方式表示实数。 如果与setios转载 2014-02-19 10:58:11 · 13721 阅读 · 3 评论 -
C++中cin、cin.get()、cin.getline…
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC6.0运行)1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车原创 2014-02-19 10:58:34 · 613 阅读 · 0 评论 -
关注C++细节——浅谈指针使用中注意…
相信大家对指针的用法已经很熟了,这里也不多说些定义性的东西了,只说一下指针使用中的注意事项吧。 一、在定义指针的时候注意连续声明多个指针时容易犯的错误,例如int *a,b;这种声明是声明了一个指向int类型变量的指针a和一个int型的变量b,这时候要清醒的记着,而不要混淆成是声明了两个int型指针。 二、要避免使用未初始化的指针。很多运行时错误都是由未初始化的指针导致的,而且这种错原创 2014-02-19 10:57:59 · 758 阅读 · 0 评论 -
C++ using namespace std 详解
一 :和是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用时,相当于在c中调用转载 2014-02-22 20:28:57 · 543 阅读 · 0 评论 -
struct和typedef struct
分三块来讲述:1 首先: 在C中定义一个结构体类型要用typedef: typedef struct Student { inta; }Stu;于是在声明变量的时候就可:Stu stu1;如果没有typedef就必须用struct Student stu1;来声明这里的Stu实际上就是struct Stu原创 2014-02-19 10:57:34 · 468 阅读 · 0 评论 -
关于if(!cin)
首先注意: 1、每一个输入(输出)对象就代表一个输入(输出)流 2、输入(输出)对象中的流状态成员标记了输入(输出)流当前的状况,当eofbit、badbit、failbit三个标记位均为0时表示流状态正常 3、一但某个或几个标记位被设置,表示对象的流状态出现相应状况,流将对后面的输入(输出)关闭,直到标记位被清除 4、只有在流状态良原创 2013-08-08 13:25:32 · 721 阅读 · 0 评论 -
随机生成六位密码(c语言)
#include#include#includevoid main(){ int i,num; char str[6]; int seed=1; char ch[4]="abc"; srand((unsigned)time(0)); gl: num=rand()%2; switch(ch[num]) { case 'a':原创 2013-08-08 13:25:10 · 4519 阅读 · 1 评论 -
异或的性质及运用
异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。性质1、交换律2、结合律(即(a^b)^c ==a^(b^c))3、对于任何数x,都有x^x=0,x^0=x4、原创 2013-08-08 13:25:28 · 1284 阅读 · 0 评论 -
内存管理
作者:林锐 博士写的真的很好(未修改,貌似有点错误)第7章 内存管理欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:640K ought to be enough for everybody— Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深原创 2013-08-08 13:25:26 · 577 阅读 · 0 评论 -
100的阶乘
#includeusingnamespace std;int len,a[201]; //数字长度与存数字的数组,其中a[1]是个位,a[len]是最高位void mul(int x) //乘法过程{ inti; for(i=1;i<=len;i++) a[i]*=x; //一位一位的乘for(i=1;i //进位{ a[原创 2013-08-08 13:25:37 · 1305 阅读 · 0 评论