1、形参和实参:编译器并没有规定实参的求值顺序。

类似下面的代码,其行为是未定义的:

  1. int i = ;
  2. printf("%d %d\n",++i,++i);

2、变量的初始化:

如果内置类型的变量,在定义时候没有初始化,那么它的值由定义的位置决定。

全局变量会被默认初始化为0,局部变量将不被初始化。

3、局部静态对象:在第一次经过变量定义的时候才初始化,到程序退出才销毁。

局部静态对象默认初始化为0。

4、函数的声明 又叫  函数原型,prototype。

5、变量 也应该在头文件中声明,在源文件中定义。

6、下面两个函数是重复定义:

  1. int func(int x){}
  2. int func(const int x){}

实际上,第二个func是错误的。因为编译器完全无法区分你调用的是哪个。

7、引用 和 const

引用的时候必须类型完全匹配。而且不能用非常量引用一个常量。

  1. const int &a = ; // ok
  2. int &b = ; // wrong
  3.  
  4. double c = 4.2;
  5. int &d = c; // wrong

下面的引用也是错误的:引用必须精确匹配。

  1. int func(const int &x)
  2. {
  3. return ;
  4. }
  5.  
  6. float a = ;
  7. func(a);

8、向函数传递一个数组时,实际传递的是一个指向数组首元素的指针。

9、将变量定义为数组的引用:

  1. void print( int (&arr)[] )// 形参是数组的引用,维度是类型的一部分。
  2. {
  3. for(auto elem:arr)
  4. cout << elem << endl;
  5. }

int &a[10]  这个是一个数组,每个元素是引用。

10、向函数传递二维数组:

  1. void print( int (*a)[], int n)  // void print(int a[][10], int n)
  2. {
      for(int i = 0; i < n; i ++)
      {
        for(int j = 0; j < 10; j++)
        {
          cout << a[i][j] << endl;
        }
      }
    }

int *a[10] 这个是一个数组,每个元素是指针。

int (*a)[10]: *a是一个数组,a是一个指向数组的指针。

P201 待续

C++ primer ch6 函数基础-1的更多相关文章

  1. C++ Primer 5 CH6 函数

    6.1 函数基础 函数包括:返回类型.函数名字.形参.函数体. 通过 "调用运算符"(一对圆括号)来执行函数,它作用于一个表达式,该表达式是函数或者指向函数的指针. 函数调用完成两 ...

  2. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  3. JavaScript 函数基础

    1. JavaScript 函数基础 1. 定义方法 2. 函数的调用方法 3. 函数方法 apply : 将函数作为数组的方法来调用 将参数以数组形式传递给该方法 call   : 将函数作为对象的 ...

  4. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  5. 【2017-03-05】函数基础、函数四种结构、ref和out参数、递归

    一.函数基础 1.函数/方法:非常抽象独立完成某项功能的一个个体 2.函数的作用: 提高代码的重用性提高功能开发的效率提高程序代码的可维护性 3.分类 固定功能函数高度抽象函数 4.函数四要素:输入, ...

  6. PHP基础入门(三)---PHP函数基础

    PHP基础入门(三)---函数 今天来给大家分享一下PHP的函数基础.有了前两章的了解,想必大家对PHP有了一定的基础了解.想回顾前两章的朋友可以点击"PHP基础入门(一)"&qu ...

  7. PHP基础入门(二)【PHP函数基础】

    PHP基础入门(二)--函数基础 了解 PHP基础入门详解(一) 后,给大家分享一下PHP的函数基础. 这部分主要讲的就是: 函数的声明与使用.PHP中变量的作用域.静态变量.函数的参数传递.变量函数 ...

  8. 09-Python入门学习-函数基础与参数

    一.函数基础 1.定义函数的三种形式 1.1 无参函数 def foo(): print('from foo') foo() 1.2 有参函数 def bar(x,y): print(x,y) bar ...

  9. Python学习day9 函数Ⅰ(基础)

    函数Ⅰ(基础) 三目运算 基本结构 v =  前面  if 条件 else 后面    #条件为真v=前面,条件为假v=后面.​#等同于if 条件: v = '前面'else:    v = '后面' ...

随机推荐

  1. Ajax的兼容及Ajax的缓存问题

    Ajax的兼容: 在ie 6 7 8 不支持XMLHttpRequest的对象: 他的Ajax内置对象为ActiveXObject("Microsoft XMLHTTP") 除了内 ...

  2. openstack处理booting from hard disk

    当你的实例启动出现如下报错的处理方式:         需要编辑/etc/nova/nova.conf [libvirt] cpu_mode = none virt_type=qemu   修改后需要 ...

  3. centos 7安装搜狗输入法

    1.安装alien依赖软件 sudo yum install alien -y 2.安装依赖软件 sudo yum install qtwebkit -y 3.转换rpm包 sudo alien -r ...

  4. Jmeter(二十二)Jmeter-Question之“不同线程组之间传递变量”

    Jmeter中增添原件是以线程组为‘基本单位’的,贴张图,显而易见: 测试计划节点下的内容 线程组节点下的内容 因此,变量只能在当前的线程组下进行传递.做个小Demo,立即试试: 测试结论:不同线程组 ...

  5. [UE4]认识Decorator

    Decorator装饰器:即为其他行为树系统中的条件语句,附着于一个Composite(组合节点)或者Task(任务节点),并定义树中的一个分支或者单个节点是否可被执行. Decorator装饰器节点 ...

  6. 00010 - cut选取命令详解

    定义 正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的.cut是以每一行为一个处理对象的,这种机制和sed是一样的 剪切依据 cut命令主要是接受三个定位方法: 第一,字节(by ...

  7. nodejs使用案例-mysql操作

    1.package.json: { "scripts": { "start": "node app.js" }, "devDepe ...

  8. MySQL中授权(grant)和撤销授权(revoke

    MySQL 赋予用户权限命令的简单格式可概括为:   grant 权限 on 数据库对象 to 用户   一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant s ...

  9. 微信小程序--swiper组件

    <view class='swiper-container'> <swiper indicator-dots="true" autoplay=" ver ...

  10. 认识JDBC

    内容: 1.JDBC介绍 2.JDBC入门 3.JDBC工具类实际使用 4.预处理对象 5.JDBC连接池 1.JDBC介绍 (1)基本概念介绍 什么是JDBC: JDBC(Java DataBase ...