C++
雪文洛
在路上的产品狗
展开
-
for 循环执行顺序
for循环的执行顺序用如下表达式:for(expression1;expression2;expression3) { expression4; } 执行的顺序应该是:1)第一次循环,即初始化循环。 首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expr转载 2013-10-06 21:03:03 · 1257 阅读 · 0 评论 -
指针的复杂声明
解析指针声明可以采用右左法则, 右左法则:首先从未定义的标示符看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。int * (* (*fp) (int) ) [10]; 阅读步骤:1.从未定义的变量名开始阅读 -----------------------------------原创 2013-10-15 16:31:34 · 548 阅读 · 0 评论 -
函数指针与指针函数
void test(int x); //此处的申明也可写成:void test( int );void (*f)(int ); //声明f 变量C语言规定函数名会被转换为指向这个函数的指针,除非这个函数名作为& 操作符或sizeof操作符的操作数(注意:函数名用于sizeof的操作数是非法的)。也就是说f = test;中test被自动转换为&test,而f= &test原创 2013-10-14 22:11:31 · 626 阅读 · 0 评论 -
C语言中volatile关键字
1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内转载 2013-10-11 22:10:20 · 481 阅读 · 0 评论 -
const 关键字
1.常量声明:const =;const double TABLE_BEGIN=50;2.常量成员函数:可以检查对象的状态,但却禁止改变对象。const flow() const;3.常量引用参数:在引用参数之前使用关键字const,在参数类型后面放置&double distance(const point& p1)4.静态成员常量:在类中的声明之前具有两个关键字原创 2013-10-09 19:31:38 · 460 阅读 · 0 评论 -
C语言实现矩阵相乘
问题描述:编写程序,可以实现m*n矩阵和n*p矩阵相乘。m,n,p均小于10,矩阵元素为整数。分析:首先我们可以根据题意写出函数头。可以定为void MatrixMutiply(int m,int n,int p,long lMatrix1[MAX][MAX],long lMatrix2[MAX][MAX],long lMatrixResult[MAX][MAX]),其中lMatrix1和转载 2013-10-09 15:05:48 · 2467 阅读 · 0 评论 -
指针
a) int a;表示一个内存空间,这个空间用来存放一个整数(int);b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。也简单的说,指向了一个b)中提到的空间;d) int (转载 2013-10-08 16:33:30 · 344 阅读 · 0 评论 -
指针类型在内存中存储大小相同
int _tmain(int argc, _TCHAR* argv[]){ unsigned int a = 0xfffffff7; unsigned char i = (unsigned char)a; char *b = (char *)&a; printf("%08x,%08x\n",i,*b);//000000f7,fffffff7}转载 2013-10-07 11:02:42 · 755 阅读 · 0 评论 -
位与异或求两个数平均值的方法
今天在CSDN上看了一个求两个数的平均值的算法:Avg = (ValueA & ValueB) + (ValueA ^ ValueB) >>1,这种方法避免了应用Avg=(ValueA+ValueB)/2时,ValueA+ValueB造成的溢出。 每个二进数都可以分解为各个位与其权的乘积的和,把两个数的分解为这样的多项式进行相加。考虑两个数的二进制序列中相同的位与不同的位:将相转载 2013-10-06 14:25:28 · 1294 阅读 · 1 评论 -
重载、覆盖、多态
重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。令人迷惑的隐藏规则本来仅仅区别重载与覆盖并不算原创 2013-10-21 16:53:17 · 465 阅读 · 0 评论