c/c++
文章平均质量分 55
ericming200409
C/C LINUX TCP/IP Python
展开
-
C++中的const
对于 const int i=10; 有人说i是常量,有人说i是只读变量,那么这两种说法到底有什么区别呢?(1)如果说是常量,则诸如int array[i];之类的数组定义就是合法的(2)如果说是只读变量,则int array[i];是不合法的,因为i是只读变量,只读变量也是变量,而数组定义的元素个数说明必须是常量或常量表达式。 至于int array[i];到底合不合原创 2009-11-29 10:59:00 · 579 阅读 · 0 评论 -
c99中的restrict(转)
转自:http://hi.baidu.com/oney131/blog/item/10f71f1f0b5033174034176e.html 看了下网上的相关贴子,但还是问题解决的不够。下面是相关一个文章,我将在后面再加相关说明: 那么restrict的意义是什么呢? 概括的说,关键字restrict只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(base on)该指针的,即不存在其它进行修改操作的途径;这样的后果是帮助编译器进行更好的代码优化,生成更有效率的原创 2011-03-08 07:12:00 · 656 阅读 · 0 评论 -
用C++设计一个不能被继承的类(转)
<br /><br />题目:用C++设计一个不能被继承的类。<br />分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。<br />在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。<br />首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类转载 2010-10-30 11:39:00 · 849 阅读 · 0 评论 -
常量折叠
<br /> <br />#include <iostream>using namespace std;void main(){ const int a = 5; int *p = (int *)&a; //让p指向与a相同的内存空间 cout << &a << ", " << p << endl; *p = 10; // 照里说a的值也应该改变,实际却没有,这就是常量折叠. cout << a << ", " << *p << endl;转载 2010-09-27 20:26:00 · 600 阅读 · 0 评论 -
c++中初始化和赋值的区别
代码说明问题:/* * @file:main.cpp *测试初始化和赋值的区别 * */#include using namespace std;//定义类及其构造函数class A{public: A();//默认构造函数 A(const A &); //拷贝构造函数 A& operator = (const A&); //重载赋值运算符原创 2010-04-22 16:08:00 · 954 阅读 · 0 评论 -
sprintf用法详解
sprintf 将字串格式化。 在头文件 #includestdio.h>中 语法: int sprintf(string format, mixed [args]...); 返回值:字符串长度(strlen) 1. 处理字符方向。-负号时表时从后向前处理。 2. 填空字元。 0 的话表示空格填 0转载 2010-04-20 16:19:00 · 1674 阅读 · 0 评论 -
整型提升
所谓整型提升,是指一个表达式,如过里面只含有int , short ,char ,unsigned, unsigned short等数据类型中的一种或多种,表达式类型会被提升为int., 代码说明问题#includeint main(int argc,char ** argv){ char a=a; printf("%d,%d/n",sizeof(a),原创 2010-04-02 20:25:00 · 615 阅读 · 0 评论 -
可变形参函数实现
#include#include //该头文件包含va_start,va_list,va_end宏int add(int a,int b,...){ va_list p_arg; //定义一个va_list变量,实际是一个指针,用于定位可变行参变量 int va; va_start(p_arg,b);//执行本宏后,p_arg指向第一个可变信参,b为最后一个确定行参 i原创 2010-03-30 11:48:00 · 1423 阅读 · 0 评论 -
void * 指针
c/c++引入void * 指针的作用主要是:一是用于函数返回,二是用于函数参数的传递。所谓void指针指的是该指针可以指向任何数据类型的地址,比如void * p;int * pInt;p=pInt; // 合法但是不能将void指针赋值给具体类型的指针,下面的语句是非法的:pInt=p; void指针只支持几种有限的操作:(1)与另一个指针进行比较;原创 2010-03-28 18:42:00 · 635 阅读 · 0 评论 -
cout于printf的缓冲机制
偶然在网上看到很多人讨论printf和cout缓冲输出的问题,稍微查了下资料,总结一下:printf和cout的输出都是现写入缓冲区,等缓冲区进行刷新的时候才真正输出到终端或者其他实质性的地方,这里举个例子可以很好的说明这个问题,例子是网上找的。#include ; #include ; int main () { pid_t pid;原创 2010-03-25 16:29:00 · 1471 阅读 · 0 评论 -
makefile详解
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makef转载 2010-03-21 20:52:00 · 639 阅读 · 0 评论 -
内存对齐经典文章
关于程序设计的内存分配问题freec(辽宁工程技术大学 软件学院 计SJ07-3 辽宁 葫芦岛 125000)[摘 要] 在大多数低层程序设计中,由于内存分配与内存对齐问题所带来的bug所占比重非常大。本文对内存分配中的分配空间类型、作用、方法、适用范围、优缺点以及内存对齐问题转载 2010-03-18 10:18:00 · 945 阅读 · 0 评论 -
伪随机数产生原理及用法
一、C++中不能使用random()函数 ,random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。可改用C++下的rand函数来实现。1、C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布转载 2010-03-16 20:40:00 · 5662 阅读 · 1 评论 -
IO标准库类型
c++中标准IO库主要有三个头文件:,,包含istream,ostream,iostream类型的定义;包含ifstream,ofstream,fstream类型的定义;包含istringstream,ostringstream,stringstream类型的定义。 继承关系:iostream的基类为istream和ostream;ifstream的基类为istr原创 2009-12-03 22:16:00 · 667 阅读 · 0 评论 -
c++异常处理
一、 概述 C++自身有着非常强的纠错能力,发展到如今,已经建立了比较完善的异常处理机制。C++的异常情况无非两种,一种是语法错误,即程序中出现了错误的语句,函数,结构和类,致使编译程序无法进行。另一种是运行时发生的错误,一般与算法有关。 关于语法错误,不必多说,写代码时心细一点就可以解决。C++编译器的报错机制可以让我们轻松地解决这些错误。 第二种是运行时的错误,常见的有文件打开失败、数组转载 2009-12-01 20:05:00 · 492 阅读 · 0 评论 -
sizeof
首先问个问题,sizeof是什么,是函数吗? sizeof 不是函数,而是地地道道的属于c++的关键字。顺便问一句c语言有几个关键字?c++又有几个?以上都是常识。。。。 sizeof有以下三种用法: siezeof (type_name); sizeof (expression); sizeof expression; //原创 2009-11-30 21:23:00 · 537 阅读 · 0 评论 -
C++中的const(二)
说到const,不能不说const跟指针的关系,主要有以下三类:(1)指向const对象的指针,比如: const int * p; 这类指针和const引用很相似,也应该解释为“自以为指向const对象的指针”,这里不在赘述。(2)指向普通成员的const指针,比如 int a=10; int * const p=&a;这种情况原创 2009-11-29 22:29:00 · 508 阅读 · 0 评论 -
关于函数
c++中的函数似乎没什么要说的,因为都比较基本,和c语言基本相同,但又有很多要注意的,内容相对零碎,但个人觉得有几点必须注意:(1)非const引用作函数形参,比如: bool fun(string & a); 在上面的函数中a为非const引用,如果在这个函数中要改变a的值,那么这么做是迫不得已;如果事实不是如此,那么我们应该用如下的函数:bool原创 2009-12-01 21:45:00 · 420 阅读 · 0 评论 -
gcc常用参数和环境变量小结
<br />转自:http://keyknight.blog.163.com/blog/static/366378402007111811412356/<br /> <br />本文结合:http://blog.csdn.net/zblue78/archive/2007/02/01/1499717.aspx 看,完美了<br /> <br />Command-Line Options<br />命令行参数<br /><br />-c<br />Preprocess, compile, and assembl原创 2011-03-10 15:17:00 · 692 阅读 · 0 评论