#include<iostream>
using namespace std;
void swap(int **a,int **b)
{
cout << endl;
cout << *a++ << " *a++ *****" << endl;
cout << a << " a *****" << endl;
cout << *a << " *a *****" << endl << endl;
cout << ++(*a) << " (*a)++ 33*****" << endl;
cout << a << " a 11*****" << endl;
cout << *a << " *a 22*****" << endl << endl;
}
void swap(int *a,int *b)
{
a++;
cout << a << " (int *a,int *b)" << endl;
}
void swap(int &a,int &b)
{
a++;
}
int main()
{
/* int c;
int d;
int *a=10;//error
// a = new int;
// *a=10;
int *b=&d;
*/
int a = 10;
int b = 20;
int *c;
int *d;
c = &a;
d = &b;
int **f = &c;
int **e = &d;
cout << *c << endl;
swap(*c,*d);
cout << *c << endl;
cout << "&c = " << &c << endl;
cout << "c = " << c << endl;
cout << "&a = " << &a << endl;
swap(c,d);
cout << "&a = " << &a << endl;
cout << "c = " << c << endl;
c ++;
//&a ++; error C2102: “&”要求左值
cout << "After c ++, &a = " << &a << endl;
cout << "After c ++, c = " << c << endl;
cout << "After c ++, &c = " << &c << endl;
cout << "After c ++, f = " << f << endl;
swap(f,e);
cout << "After swap(f,e), &a = " << &a << endl;
cout << "After swap(f,e), c = " << c << endl;
cout << "After swap(f,e), &c = " << &c << endl;
cout << "After swap(f,e), f = " << f << endl << endl << endl;
cout << &a << endl;
swap(&a,&b);
cout << &a << endl;
cout << a << endl;
swap(a,b);
cout << a << endl;
return 0;
}
输出:
10
11
&c = 002EFD04
c = 002EFD1C
&a = 002EFD1C
002EFD20 (int *a,int *b)
&a = 002EFD1C
c = 002EFD1C
After c ++, &a = 002EFD1C
After c ++, c = 002EFD20
After c ++, &c = 002EFD04
After c ++, f = 002EFD04
002EFD20 *a++ *****
002EFD08 a *****
CCCCCCCC *a *****
CCCCCCD0 (*a)++ 33*****
002EFD08 a 11*****
CCCCCCD0 *a 22*****
After swap(f,e), &a = 002EFD1C
After swap(f,e), c = 002EFD20
After swap(f,e), &c = 002EFD04
After swap(f,e), f = 002EFD04
002EFD1C
002EFD20 (int *a,int *b)
002EFD1C
11
12
引用与指针的区别:
1 引用被创建时必须被初始化,而指针不必
2 引用一旦被初始化则不能改变引用的对象,而指针可以随时改变指向的对象;
3 引用不能为NULL,而指针可以;
引用传递:
被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。
分享到:
相关推荐
16_两个辅助指针变量挖字符串测试框架搭建 18_作业 源码及文档 01_课程回顾 02_两个赋值指针变量挖字符训练_第3种内存模型_传智扫地僧 03_多级指针的野指针问题(释放问题)_传智扫地僧 04_学员作业点评_典型错误...
5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 5.17 说真的,真有机器用非零空指针吗,或者不同类型用...
5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 60 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 60 5.17 说真的,真有机器用非零空指针吗,或者不同...
书中设计了超过115个完整的经过教学测试的代码示例,不仅分析了这些示例的代码片段,而且还解释了如何把它们组成一个完整的程序。此外,各章后面都提供了大量练习,有助于加强读者对相关内容的理解。 本书图文并茂,...
回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到...
JUnit,测试驱动开发 字符串,字符串生成器 内部类,TreeNode 图节点表示 Java 8 特性 队列、堆栈、双端队列 树结构,树集 堆,优先队列 Guava(谷歌核心 Java 库 链表,ArrayDeque 哈希,哈希表 LRUCache 缓存,...
C++片段2 指针、多态和内存分配 113 C2.1 变量的内存分配和方法的前期绑定 114 C2.2 需要解决的问题 115 C2.3 指针与程序的自由存储 116 C2.3.1 释放内存 118 C2.3.2 避免内存泄漏 119 C2.3.3 避免悬挂指针 ...
2.13.3 解析器基准测试 2.14 书籍目录应用程序 2.15 小结 第3章 文档类型定义 3.1 为何需要正式的结构 3.1.1 文档域 3.1.2 验证文档的有效性 3.2 编写DTD:通用原则 3.2.1 将DTD与XML文档相关联 3.2.2 基本...
1.3 历史回顾 5 1.3.1 Delphi 1 5 1.3.2 Delphi 2 6 1.3.3 Delphi 3 6 1.3.4 Delphi 4 7 1.3.5 Delphi 5 7 1.3.6 未来 7 1.4 Delphi 5的IDE 7 1.4.1 主窗口 8 1.4.2 窗体设计器 9 1.4.3 Object Inspector 9 1.4.4 ...
1.3 历史回顾 5 1.3.1 Delphi 1 5 1.3.2 Delphi 2 6 1.3.3 Delphi 3 6 1.3.4 Delphi 4 7 1.3.5 Delphi 5 7 1.3.6 未来 7 1.4 Delphi 5的IDE 7 1.4.1 主窗口 8 1.4.2 窗体设计器 9 1.4.3 Object Inspector 9 1.4.4 ...
2.5.9 指针运算符和转换函数 30 2.5.10 begin()和end()函数 32 2.5.11 shutdown()函数 32 2.5.12 两个实用函数 33 2.6 GCInfo 33 2.7 Iter 34 2.8 如何使用GCPtr 36 2.8.1 处理分配异常 37 2.8.2 一个更有趣的示例 ...
一个简单的PL/SQL 语句块395 又一个程序398 存储过程包和触发机制403 总结406 问与答407 校练场407 练习407 第19 天TRANSACT-SQL 简介408 目标408 TRANSACT-SQL 概貌408 对ANSI SQL 的扩展408 谁需要使用TRANSACT-...
9.2.3 优先图测试发挥作用的原因 习题 9.3 使用锁的可串行性实现 9.3.1 锁 9.3.2 封锁调度器 9.3.3 两阶段封锁 9.3.4 两阶段封锁发挥作用的原因 习题 9.4 用多种锁方式的封锁系统 9.4.1 共享锁...
10.1.6 通过指针传送 10.1.7 自动加载 10.1.8 BEGIN和END子程序(开始和结束) 10.1.9 subs函数 练习9 子程序不可缺少 第11章 模块化、打包并发送到库 11.1 包和模块 11.1.1 类比 11.1.2 定义 ...
2.13.3 解析器基准测试 2.14 书籍目录应用程序 2.15 小结 第3章 文档类型定义 3.1 为何需要正式的结构 3.1.1 文档域 3.1.2 验证文档的有效性 3.2 编写DTD:通用原则 3.2.1 将DTD与XML文档相关联 3.2.2 基本...
2.13.3 解析器基准测试 2.14 书籍目录应用程序 2.15 小结 第3章 文档类型定义 3.1 为何需要正式的结构 3.1.1 文档域 3.1.2 验证文档的有效性 3.2 编写DTD:通用原则 3.2.1 将DTD与XML文档相关联 3.2.2 基本...