C++ Primer Plus读书笔记(七)函数】的更多相关文章

MDX 中最大值和最小值 MDX 中最大值和最小值函数的语法和之前看到的 Sum 以及 Aggregate 等聚合函数基本上是一样的: Max( {Set} [, Expression]) Min( {Set} [, Expression]) 直接看例子,先查询出所有 Sub Category 下的 Reseller Sales Amount. 然后使用 MAX 函数查询出 Sub Category 下最大的 Reseller Sales Amount.在这里查询的范围即 SET 集合是 Sub…
对于本节的函数内容其实就没什么难点了,但是对于函数这节又涉及到了顺序点的问题,我觉得可以还是忽略吧. 本节知识点: 1.函数中的顺序点:f(k,k++);  这样的问题大多跟编译器有关,不要去刻意追求.  这里给下顺序点的定义:顺序点是执行过程中修改变量值的最后时刻.在程序到达顺序点的时候,之前所做的一切操作都必须反应到后续的访问中. 2.函数参数:函数的参数是存储在这个函数的栈上面的(对于栈可以看上篇文章<内存管理的艺术>),是实参的拷贝. 3.函数的可变参数: a.对于可变参数要包含sta…
读<C++ Primer>才知道,自己对C++知之甚少... 写个博客记录下自己C++的成长,只是读书笔记,不是对<C++ Primer>知识点的总结,而是对自己在书上看到的以前不懂或不清楚的C++知识的一个记录,也希望和一起初读<C++ Primer>的朋友们一起成长. 新手笔记,大牛请无视. 1.cin和cout分别是istream和ostream的一个对象,定义在std中,另外,cin和cout是有返回值的返回值是这个istream或ostream对象(应该是引用…
1.声明 void fun1(); //该声明在C中的意思是不指定参数,但是在C++中是指定参数为void void func2(...); //C++中不指定参数 2.函数参数为数组区间 STL有数据区间的概念,函数可以使用例如下面的参数 int arr[8] = {}; int func(const int * begin, const int * end) { int * p = NULL; int totle = 0; for(p = begin; p != end; p++) //需要…
这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #include <stdio.h> int main (void) { long num; long sum = 0L; int status; printf("Please enter an integer to be summed. "); printf("q to qui…
开篇介绍 SSAS 分析服务中记录了大量的聚合值,这些聚合值在 Cube 中实际上指的就是度量值.一个给定的度量值可能聚合了来自事实表中上千上万甚至百万条数据,因此在设计阶段我们所能看到的度量实际上就已经应用了某些聚合函数来决定这个值怎样被聚合. 当然有可能已有的度量值远远还不够,还需要在查询的时候继续从不同的角度去聚合一些数据以满足实际需求,因此就会使用到各种不同的 MDX 聚合函数. Sum 聚合 Sum 聚合的应用非常普通和常见,在 MDX 中其语法为: Sum ({SET} [, Exp…
第八章 函数探幽 1.常规函数与内联函数的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中. 2.常规函数调用使程序跳到另外一个地址(函数地址),并在函数结束时返回,更详细的的实现过程:执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保留的内存块),跳到标记函数起点的内存单元,执行函数代码(也许还需将返回值i放入寄存器)然后跳回到地址被保存的指令处.来回跳跃并记录跳跃位置意味着以前使用函数时,需要一定的开销. 3.内联函数:编译器将使…
函数-C++的编程模块   1.C++对于返回值的类型有一定的限制:不能是数组,但可以是其他任何类型——整数.浮点数.指针,甚至可以是结构和对象(有趣的是,虽然C++函数不能直接返回数组,但可以将数组作为结构或者对象的组成部分来返回). 2.函数时如何返回值的?通常,函数通过将返回值复制到指定的CPU寄存器或内存单元中来将其返回.随后,调用程序间查看该内存单元.函数原型将返回值类型告知调用程序. 3.为什么需要函数原型?原型描述了函数到编译器的接口,也就是说,它将函数返回值的类型(如果有的话)以…
1.内联函数 inline int square(x) {return x*x} 2.引用变量 int& 中的& 不是地址运算符,就想定义指针时的char* 一样,int&指的是指向int的引用. int rate; int & res = rate; 这样使用res 做参数时,按址传递而不再是按值传递. 引用与指针的区别在于,引用在声明的时候必须进行初始化,而不能像指针那样先指向NULL,再进行初始化. 将引用初始化之后就不能修改引用的对象了,看个例子 int a = 5…
第8章 函数探幽 1. 对于内联函数,编译器将使用相应的函数代码替换函数调用,程序无需跳到一个位置执行代码,再调回来.因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多内存. 2. 要使用内联函数,需要在: 函数声明前加上关键字inline; 函数定义前加上关键字inline; 3. 程序员请求将函数作为内联函数时,编译器不一定会满足这种需求.它可能认为该函数过大或注意到函数调用了自己(内联函数不能递归). 4. 必须在声明引用变量时进行初始化 int rat = 101; int &…