06-引用

栏目: C · 发布时间: 7年前

我们经常使用#ifndef、#define、#endif来防止头文件的内容被重复包含
◼#pragma once可以防止整个文件的内容被重复包含
◼区别
#ifndef、#define、#endif受C\C++标准的支持,不受编译器的任何限制
有些编译器不支持#pragma once(较老编译器不支持,如GCC 3.4版本之前),兼容性不够好
#ifndef、#define、#endif可以针对一个文件中的部分代码,而#pragma once只能针对整个文件

复制代码

名词解释

◼ 在 C语言 中,使用指针(Pointer)可以间接获取、修改某个变量的值 
◼ 在C++中,使用引用(Reference)可以起到跟指针类似的功能
◼ 注意点 
引用相当于是变量的别名(基本数据类型、枚举、结构体、类、指针、数组等,都可以有引用) 对引用做计算,就是对引用所指向的变量做计算
在定义的时候就必须初始化,一旦指向了某个变量,就不可以再改变,“从一而终” 
可以利用引用初始化另一个引用,相当于某个变量的多个别名 不存在【引用的引用、指向引用的指针、引用数组】
◼ 引用存在的价值之一:比指针更安全、函数返回值可以被赋值
接下来我们再来const--下一讲会专门来讲 字段(ios开发者不会陌生),常引用,数组的引用,表达式的引用
复制代码

常引用const

将main.m 改为mian.mm 文件(以后若是同样的操作,将不再赘述)
◼ const是常量的意思,被其修饰的变量不可修改 
如果修饰的是类、结构体(的指针),其成员也不可以更改
◼ 引用可以被const修饰,这样就无法通过引用修改数据了,可以称为常引用 
const必须写在&符号的左边,才能算是常引用
◼ const引用的特点 可以指向临时数据(常量、表达式、函数返回值等) 
可以指向不同类型的数据 
作为函数参数时(此规则也适用于const指针)
✓ 可以接受const和非const实参(非const引用,只能接受非const实参)
✓ 可以跟非const引用构成重载
◼ 当常引用指向了不同类型的数据时,会产生临时变量,即引用指向的并不是初始化时的那个变量

int a = 20;
int &page = age;
其中page就是一个引用
const 也是老生常谈的问题
int a = 20;
const int *page = age;
page 被 const修饰,则page不可改变了,就是固定的值了

int a = 10;
int *p = &a;
*p = 30;
cout << a << endl;
打印结果:
30
复制代码

数组引用

int array[] = { 10, 20, 30 };
int (&rArray)[3] = array;
cout << array << endl;
cout << &rArray << endl;
打印结果
0x7ffeefbff54c
0x7ffeefbff54c
在函数调用,需要传入数组参数时,就可以传入引用
void testArray(int (&array)[3])
{
    cout << "size:" << sizeof(array) << endl;
    for (int i = 0; i < sizeof(array)/4; i++)
    {
        cout << array[i] << endl;
    }
}
//sizeof 计算对象的大小 是字节为单位的, sizeof(array)/4 就是有多小个int 数据
int array[] = { 10, 20, 30 };
testArray(array);
打印结果:
size:12
10
20
30
复制代码

再举几个:chestnut:(枚举,结构体)

enum Season {
    Spring,
    Summer,
    Fall,
    Winter
};

struct Student {
    int age;
};

Season season;
Season &rSeason = season;
rSeason = Winter;
cout << season << endl;
    
Student stu;
Student &rStu = stu;
rStu.age = 20;
cout << stu.age << endl;
看下打印结果:
3
20

复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Operating System Algorithms

Operating System Algorithms

Nathan Adams、Elisha Chirchir / CreateSpace Independent Publishing Platform / 2017-4-21 / USD 39.15

Operating System Algorithms will walk you through in depth examples of algorithms that you would find in an operating system. Selected algorithms include process and disk scheduling.一起来看看 《Operating System Algorithms》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具