声明与定义

声音与定义的区别在于,声明没有给变量分配空间,而定义则给变量分配了空间;定义也是声明

extern int i; // 声明但未定义
int i ; //声明且定义
extern double PI = 3.14; //声明且定义

文件用于声明而不是定义。之所以这样的原因是有时候一个程序可能包括多个文件,若有两个以上的文件含有上述一个定义都会导致多重定义链接错误。

因为头文件包含在多个源文件中,所以不应该包含变量或函数的定义。

引用

引用是对象的另一个别名,并且在声音的时候就要初始化。

int value = 30;     //value = 30
int &ref = value; //&ref = &value,即地址;ref = 30

因此在引用上的操作都是对作用在该引用绑定的对象上。

ref += 2;          //
cout<<value<<endl; // value = 32

而且需要注意的是,引用具有“如一性”,即当初始化后,其绑定的对象不可更改,不能再绑定另一个对象。

typedef名字

typedef用于定义类型的同义词。

typedef double wages;
typedef int exam_score; wages hour, week; // double hour,week;
exam_score result; // int result;

版权声明:本文为博主原创文章,未经博主允许不得转载。

2015-09-14-C++基础的更多相关文章

  1. 2015.7.14(大盘结束红色,中色连坐4T)

    中色今天的盘面相当有意思,现场直播庄家和散户斗法我估计中色要拉涨停了,不过你别跟,现在很危险了——就算是涨停,明天一个低开就把你给绕进去了 1.今天开市9:42发现中色的地位买入点良机16.13,此时 ...

  2. Linux JDK 安装及卸载 http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html

    参考:http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html

  3. MyEclipse 2015 CI 14发布(附下载)

    支持Web和Node.jsd的JavaScript Debugger调试器,新版本功能更加强大,在MyEclipse调试web应用程序变得更方便.调试器支持断点.变量和表达式. 类的动态预加载用Hot ...

  4. Myeclipse 2015 stable 1.0 完美破解方法(转自 http://yangl.net/2015/07/14/myeclipse_2015stable_1/)

    Myeclipse 2015 stable 1.0 完美破解方法 http://yangl.net/2015/07/14/myeclipse_2015stable_1/ 破解包(注册机)下载地址:链接 ...

  5. 2016.09.14,英语,《Using English at Work》全书笔记

    半个月时间,听完了ESLPod出品的<Using English at Work>,笔记和自己听的时候的备注列在下面.准备把每个语音里的快速阅读部分截取出来,放在手机里反复听. 下一阶段把 ...

  6. http://browniefed.com/blog/2015/09/10/the-shapes-of-react-native/

    http://browniefed.com/blog/2015/09/10/the-shapes-of-react-native/

  7. Murano Weekly Meeting 2015.07.14

    会议时间: 2015.07.14 主持人: Kirill Zaitsev, core from Mirantis 会议摘要:  1.periodic nightly builds,然后通过mailin ...

  8. 2015/9/18 Python基础(14):函数式编程

    这篇写了忘发.现在补上. Python不是也不大可能成为一种函数式的编程语言,但是它支持许多有价值的函数式编程语言构建.也有些表现的像函数式编程机制但是从传统上也不能认为是函数式编程语言的构建.Pyt ...

  9. 带你了解Typescript的14个基础语法

    摘要:Typescript可以说是JavaScript的超集,在JS的基础上新增了许多语法特性,使得类型不再可以随意转换,能大大减少开发阶段的错误. 本文分享自华为云社区<Typescript基 ...

  10. Linux学习笔记(二)2015.4.14

    笔记2.1 Q:登陆命令  A:刚开始登陆的是安装Linux时设置的普通用户,如lin,输入su - root后,成为root用户 笔记2.2 Q:切换控制台  A:ctrl+alt+F1-F7可以切 ...

随机推荐

  1. GCC常见命令汇总

    int main() { test(); } man.c如上: #include <stdio.h> void test() { printf("test\n"); } ...

  2. JNI的第1种写法 及 JNI通过形参修改Java数据

    声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635 目的:通过形参在Java 和C之间传递数据,尤其是大块的媒体数据 优点:避免通过返回值返回一个巨大的数据块 ...

  3. 题解 洛谷P2158 【[SDOI2008]仪仗队】

    本文搬自本人洛谷博客 题目 本文进行了一定的更新 优化了 Markdown 中 Latex 语句的运用,加强了可读性 补充了"我们仍不曾知晓得 消失的 性质5 ",加强了推导的严谨 ...

  4. 微信请求参数生成SHA1签名

    package com.dhht.wechat.util; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObjec ...

  5. gitKraken取消/关闭全屏

    如果你找不到在哪里设置的 这是配置文件  注意 fullScreen 字段,改这个字段可以改变是不是全屏,改变之前先关闭软件, 文件目录 第二张图

  6. Long型转ZonedDateTime型

    /** * 将Long类型转化成0 * @author yk * @param time * @return */public static ZonedDateTime toZonedDateTime ...

  7. sftp安装(linux)

    --整理于网络 1. 查看openssh版本ssh -Vopenssh版本必须大于4.8p12. 创建sftp组groupadd sftp3. 创建sftp用户useradd -g sftp -s / ...

  8. Debian8.8下的VIM的配置文件

    传动们:http://blog.csdn.net/gatieme/article/details/43883261?spm=5176.100239.blogcont47532.3.yXiEuB 感觉挺 ...

  9. Codeforces Educational Round 81 解题报告

    前置扯淡 赛前:这场\(Div2\)呀,那我写\(3\)题就行,\(D\)题尽力就好 赛中:啊啊,\(ABC\)我全过了\(pretest\),我太强了!!这把上蓝稳了 赛后:\(woc\),为啥被\ ...

  10. [JSOI2019]神经网络(树形DP+容斥+生成函数)

    首先可以把题目转化一下:把树拆成若干条链,每条链的颜色为其所在的树的颜色,然后排放所有的链成环,求使得相邻位置颜色不同的排列方案数. 然后本题分为两个部分:将一棵树分为1~n条不相交的链的方案数:将这 ...