以struct类型为例:

  • 引用
#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
string name;
int age;
}; void printinfo1(mycoach &cpc)
{
//参数是mycoach实例的别名,指向入参的真实地址,所以一改入参的值也跟着改
cpc.name = "陈培昌";
} void main()
{
mycoach coach1;
coach1.name = "徐晓冬";
printinfo1(coach1);
cout << "这位神秘嘉宾是" << coach1.name << endl;//陈培昌
system("pause");
}

输出结果:

  • 形参传入----可以预见这种方式不会改变struct实例的值
#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
string name;
int age;
}; void printinfo1(mycoach cpc)
{
//参数是mycoach实例的别名,指向入参的真实地址,所以一改入参的值也跟着改
cpc.name = "陈培昌";
} void main()
{
mycoach coach1;
coach1.name = "徐晓冬";
printinfo1(coach1);
cout << "这位神秘嘉宾是" << coach1.name << endl;
system("pause");
}

输出结果:

  • 指针---效果同引用
#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
string name;
int age;
}; void printinfo3(mycoach *cpc)
{
//和引用效果一样,入参为指针类型,可以更改指向地址的数据
cpc->age = ;
cout << "hello, myname is " << cpc->name << "今年芳龄" << cpc->age << endl;
} void main()
{
mycoach coach1;
coach1.name = "徐晓冬";
mycoach *xxd = &coach1;
printinfo3(xxd);
cout << "这位神秘嘉宾是" << coach1.name << endl;
system("pause");
}

输出结果:

通过代码可以看出,函数中传入的指针和struct实例处于同一内存地址上

#include"iostream"
#include<string>
using namespace std;
struct mycoach
{
string name;
int age;
}; void printinfo3(mycoach *cpc)
{
//和引用效果一样,入参为指针类型,可以更改指向地址的数据
cpc->age = ;
cout << "hello, myname is " << cpc->name << "今年芳龄" << cpc->age << endl;
printf("内存地址是%d\n",cpc);
} void main()
{
mycoach coach1;
coach1.name = "徐晓冬";
mycoach *xxd = &coach1;
printinfo3(xxd);
cout << "这位神秘嘉宾是" << coach1.name << endl;
printf("struct实例地址是%d\n", &coach1);
system("pause");
}

C/C++系列之复杂引用的更多相关文章

  1. iOS开发系列-定时器强引用问题

    概述 iOS开发中常用的定时器NSTimer.CADisplayLink. NSTimer 和 CADisplayLink 基本使用 NSTimer的创建方法有两个scheduledTimerWith ...

  2. [Unity2d系列教程] 002.引用外部DLL - C

    上一篇我们学习了Unity调用C#生成的外部DLL,但是有时候我们需要访问底层,不能不适用C生成的DLL.下面就让我们一起学习下,C如何生成. 1.创建一个C的控制台程序 2.点击确定->点击下 ...

  3. [Unity2d系列教程] 001.引用外部DLL - C#

    众所周知,Unity可以支持多种语言开发, C#, JS, Boo三种方式的开发, 能够很方便的集成一些外部插件,以便调用现有的动态链接库.学过C#的都知道C#可以生成一个dll供给其他的程序调用.那 ...

  4. Java8新特性之方法引用

    <Java 8 实战>学习笔记系列 定义 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它,可以把方法引用看作针对仅仅涉及单一方法的Lambda的语法糖,使用它将减少自己 ...

  5. document.all的详细解释(document.all基本上所有浏览器可用!)

    从何而来从IE4开始IE的object model才增加了document.all对象,MSDN中也对 Object.all 有详细的说明,Object.all是个HTMLCollection,不是数 ...

  6. 转:Beautiful Soup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...

  7. SQL语言笔记

      字符串用单引号',判断用单等号=,两个单引号''转义为一个单引号' 不等号是<> 不区分大小写 []括起来的要不是关键字,要不是非法变量,比如空格隔起来的变量   创建与删除数据库 - ...

  8. SQLserver 连接+开窗函数+视图+事务

    今天学习SQLserver 连接以及开窗函数..加油! 1.复习:查询(检索)->筛选列->筛选行:distinct top where 运算符与关键字:比较运算符,逻辑运算符,betwe ...

  9. sql Servers数据库基础

    1. 数据库约束包含:     ·非空约束     ·主键约束(PK) primary key constraint 唯一且不为空     ·唯一约束(UQ) unique constraint 唯一 ...

随机推荐

  1. 分布式架构下,session共享有什么方案么?

    分布式架构下,session共享有什么方案么? 会点代码的大叔 科技领域创作者 分布式架构下的session共享,也可以称作分布式session一致性:关于这个问题,和大家说一说解决方案(如果有其他的 ...

  2. windows下java环境变量的一点心得

    JAVA_HOME:D:\software\java\jdk1.8.0_121 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar ...

  3. ASP.NET Core 过滤器

    继承Attribute,IActionFilter实现自己的过滤器类,并且在Startup,mvc服务中注入. 全局都会过滤,在任意一个controller,action执行前和执行后都会过滤一次 通 ...

  4. IDEA GIT 忽略文件 最佳方式

    前言 转载一篇博客,简单,实用. 原文地址:intellij idea 忽略文件不提交 ps:下面均为转载博客的内容: 在intellij中忽略提交文件,分两种情况, 文件没有纳入版本管理 第一种,文 ...

  5. Java AmericanFlagSort

    Java AmericanFlagSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInterna ...

  6. Mysql对查询结果添加序列号

    ; as rownum,* from table1 :=和=的区别? "=",只有在set和update时才和:=一样,赋值的作用,其它都是等于的作用.鉴于此,用变量实现行号时,必 ...

  7. Myeclipse debug 调式java 报错,留做后面解决!

    FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT( ...

  8. JS实现当前选择日期是星期几

    使用到的日期插件是My97 Datepicker,这里通过onpicked方法触发getDay()方法,在getDay()方法中获取已选择的日期来判断是星期几. 插件下载地址:http://www.m ...

  9. 两个重叠的div做前后翻转

    当需要做一个翻转卡片式的div时候,需要两个div的大小等大例如: 画出两个等大的div后,将他们重叠 图中的两个div做了重叠,做重叠时候用的属性是 position: absolute; 并且需要 ...

  10. WordPress,SAP Kyma和微信三者的集成

    我们来继续学习如何在实战中使用SAP Kyma. Jerry在之前的文章里,分别介绍了如何本地搭建WordPress实例: 什么?在SAP中国研究院里还需要会PHP开发? 以及如何把这个本地搭建的Wo ...