C/C++
文章平均质量分 69
我是一只奋斗的小菜鸟
有朋自远方来不亦乐乎!
展开
-
标准输入流中空白字符的怪异 —— 区分 scanf 与 cin
在论坛上看到有人提出一个如下的问题,在此总结一下。原问题:http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41897.html #include int main() { int ival1 = 123, ival2 = 1; ch转载 2013-05-19 10:40:09 · 737 阅读 · 0 评论 -
C++ 0:空指针
0:空指针在C和C++中,有关指针的上下文中出现的0代表空指针:int i =0; //i now contains theinteger zerochar*s=0; //s now contains the nullpointer(注3: 不要认为0是一个地址,尽管空指针实现时常被作为地址0,但是实际上不必这样。)这里0是用作整数的,它代原创 2013-07-11 10:15:13 · 927 阅读 · 0 评论 -
C++,字符区别
字符类型: char在C中,诸如’a’这样的字符文字的类型是int, 使得许多C 程序员吃惊不已,但这种方法却能在C语言中很好地运行。在C++中,类型为int的字符文字在函数重载中就不适用:void print(inti); //prints numbervoid print (char c); //prints charactermain () {原创 2013-07-11 10:17:04 · 652 阅读 · 0 评论 -
C++常用字符串长度计算函数
字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占字节的数目。常见的获取字符串长度的方法包括如下几种。 1.使用sizeof获取字符串长度sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串和UNICODE字符串,形式如下: sizeof(cs)/sizeof(char) sizeof(ws)/siz转载 2013-12-29 06:03:26 · 16164 阅读 · 0 评论 -
scanf的数据读取
首先分析一下整个数据的录入的过程:键盘-》键盘缓冲区-》(回车)-》输入缓冲区下面看一个简单的c语言程序:如果连续输入20 60 80 这样的数据,在每次的提示输入之后,scanf 会依次把这些数据从输入缓冲区中读出,如下图:即如果依次输入数据多了,剩下的会留在输入缓存区,供下次读取使用,不会丢弃。可以用如下方式清除输入缓冲区的数据:原创 2013-05-19 11:29:02 · 893 阅读 · 0 评论 -
Linux c编程一站式学习笔记(01), switch语句
最近在读这本书, 其中有自己的以前没有掌握好的就写道博客里跟大家分享了.示例程序1.#includevoid print_day(int day){ switch(day) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); break; case 3: prin原创 2013-12-30 04:12:25 · 659 阅读 · 0 评论 -
Linux c编程一站式学习笔记(09),段错误
以下内容是>的学习摘录与笔记。首先是先了解一下什么是MMU((Memory Management Unit,), 及有和没有MMU的情况,为什么要有MMU首先引入两个概念,虚拟地址和物理地址。如果处理器没有MMU, 或者有MMU但没有启用, CPU执行单元发出的内存地址将直接传到芯片引脚上,被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为物理地址(Physical Addre原创 2014-01-04 07:25:18 · 1027 阅读 · 0 评论 -
int, float, double之间不得不说的故事
抱歉我用了一个这么“二”的题目,不过二点就二点吧,希望内容还不算太二。 其实学习过编程的同学,都对这三个东西再熟悉不过了。int,又称作整型,在.net中特指的是Int32,为32位长度的有符号整型变量。float,单精度浮点数,32位长度,1位符号位,8位指数位与23位数据位,在.net中又称为Single。double,64位长度的双精度浮点数,1位符号位,11位指数位,52位数据位。它转载 2014-01-11 23:04:43 · 1086 阅读 · 0 评论 -
不含类的C++
新型的注释C++添加了一种新型的注释,它以双斜杠(//)开头,在一行的结尾处结束:/*这是一条C和C++中的注释,在此结束->*/int five= 2+2;//这是一条C++中的注释,在本行结尾处结束->新的注释类型很短小,仅有一行的注释(如变量声明)是最为有用的。旧注释类型在注释内容超过一行是仍然是需要的。个人的喜好决定了你何时使用哪种类型的注释。 struct、enu原创 2013-07-11 08:52:16 · 767 阅读 · 0 评论 -
C++ 函数
函数的变化正确的抽象机制要求你使用函数调用来隐藏实现代码。为了管理你将用到的所有函数,C++加强了对函数类型的要求。在使用函数之前,你必须声明它,包括它的参数类型。然而这里还有一定的灵活性,你可以赋予两个函数相同的名字,只要能够根据它们的参数将其区分开。函数声明函数声明(declaration)或称为函数原型(prototype)说明的是函数接口而不是函数主体。在C++或ANSI/原创 2013-07-11 09:34:32 · 776 阅读 · 0 评论 -
在switch-case中定义变量时当心被“穿越”
这篇文章的分类是C++,所以特此声明这里提到的规则只适用于C++。对于C语言,是有不同的一套规则的。先来看看下面这段代码,有问题吗?void RunStateMachine() { switch(m_status) { case TASK_START: int data = FormD转载 2013-05-19 16:46:46 · 751 阅读 · 0 评论 -
C/C++ 变量在内存中的存储
首先是寄存器变量存放在寄存器中,其他的变量存放在内存中,下表为内存布局高内存地址栈向下增长,可读可写可执行空洞向上增长堆向上增长,可读可写可执行BSS段(未初始化数据段)向上增长,可读可写不可执行.d原创 2013-05-18 22:30:34 · 1279 阅读 · 0 评论 -
C/C++中的内存补齐机制
在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。例如,下面的结构各成员空间分配情况:struct test转载 2013-05-21 17:57:31 · 719 阅读 · 0 评论 -
内存中的对齐与补齐
首先通过一个简短的程序进行分析:#include typedef struct goods{char name[18];//18double price;//8char charge;//1int num; //4short saled; //2}gs;intmain (){printf ("%d\n", sizeof原创 2013-05-21 17:55:53 · 788 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所转载 2013-05-22 00:57:43 · 845 阅读 · 0 评论 -
面向对象
面向对象程序设计的重点在于对象,是对象构成了程序,而不是函数和数据。一个对象可以表达真实生活中的某个概念,诸如汽车或太阳系,也可以表达更为抽象的东西,像数字栈或者排序引擎等。每一个对象都有一套定义明确的能力,如一辆汽车可以启动、停止和转弯,而一个栈则可以推入或者弹出数据等。OOP是由创建这些对象并使得他们协调工作而构成的。你可以使用OOP创建一个完全实用的程序,也可以提供一个对象的集合以向别人原创 2013-06-07 23:19:29 · 456 阅读 · 0 评论 -
类
我们已经了解了什么是OOP,现在来看一下C++在C中添加了什么来支持OOP。扩充的基本概念是类(class)。类描述了对象的形式和行为。它就像一个分类,从中你可以挤出任意多的对象,想要多少都可以。从语法上讲,C++的类就像C的结构。它有几点直接的扩展之处以便于实现OOP。一个栈的类如下所示:class Stack{ //class definitionpublic: //acces原创 2013-06-08 22:01:08 · 691 阅读 · 0 评论 -
xen 安装2003 server
单位有一台浪潮520D服务器,由于只跑单一服务,并且安装的是32位2003,无法识别8G内存,只能使用4G。最近由于要实验许多软件,服务器有点捉襟见肘。领导同意我的使用Rhel5,利用xen 虚拟多个操作系统来解决现在的问题。首先,很容易的安装64位rhel5,并且安装xen。安装完毕后,进入系统,发现xen无法完全虚拟化(使用xen虚拟windwos,需要使用完全虚拟化,并且需要转载 2013-06-08 22:24:40 · 1028 阅读 · 0 评论