我们经常使用#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 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 强引用、软引用、弱引用、虚引用
- java的强引用、软引用、弱引用、幻象引用,引用队列总结
- Java 对象引用方式 —— 强引用、软引用、弱引用和虚引用
- 强引用、软引用、弱引用、幻象引用有什么区别?
- 你确定真的了解 Java 四种引用(强引用、弱引用、软引用、虚引用)了吗?
- java:强引用,软引用,弱引用和虚引用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java学习笔记
林信良 / 清华大学出版社 / 2015-3-1 / CNY 68.00
●本书是作者多年来教学实践经验的总结,汇集了学员在学习课程或认证考试中遇到的概念、操作、应用等问题及解决方案 ●针对Java SE 8新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新 ●详细介绍了JVM、JRE、Java SE API、JDK与IDE之间的对照关系 ●从Java SE API的源代码分析,了解各种语法在Java SE API中的具体应用 ......一起来看看 《Java学习笔记》 这本书的介绍吧!