`
fujinbing
  • 浏览: 237338 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

引用即是别名

 
阅读更多
看一下程序

#include <stdio.h>

typedef unsigned long int UINT4;

typedef struct {
  UINT4 state[4];
  UINT4 count[2];

} MY_T;

void initByPoint (MY_T *context)
{
  context->count[0] = context->count[1] = 0;
  /* Load magic initialization constants.
*/
  context->state[0] = 1;
  context->state[1] = 0xefcdab89;
  context->state[2] = 0x98badcfe;
  context->state[3] = 0x10325476;
}
void initByRef (MY_T &context)
{
  context.count[0] = context.count[1] = 0;
  /* Load magic initialization constants.
*/
  context.state[0] = 2;
  context.state[1] = 0xefcdab89;
  context.state[2] = 0x98badcfe;
  context.state[3] = 0x10325476;
}

void initByCommon (MY_T context)
{
  context.count[0] = context.count[1] = 0;
  /* Load magic initialization constants.
*/
  context.state[0] = 3;
  context.state[1] = 0xefcdab89;
  context.state[2] = 0x98badcfe;
  context.state[3] = 0x10325476;
}
int main(){

      MY_T t;
      MY_T &r=t;
      printf("t.state[0]=%lu\n",t.state[0]);
      printf("r.state[0]=%lu\n",r.state[0]);
      initByCommon(t);
      //initByCommon(r); 结果一样
      printf("t.state[0]=%lu\n",t.state[0]);
      printf("r.state[0]=%lu\n",r.state[0]);
      initByPoint(&t);
      //initByPoint(&r);结果一样
      printf("t.state[0]=%lu\n",t.state[0]);
      printf("r.state[0]=%lu\n",r.state[0]);
      initByRef(t);
      //initByRef(r); 结果一样
      printf("t.state[0]=%lu\n",t.state[0]);
      printf("r.state[0]=%lu\n",r.state[0]);
     
           

     
     
return 1;
}




t.state[0]=3218421528
r.state[0]=3218421528
t.state[0]=3218421528
r.state[0]=3218421528
t.state[0]=1
r.state[0]=1
t.state[0]=2
r.state[0]=2




elemtype& a1;
elemtype *a2;
elemtype a3;

fun1(elemtype& a);
fun2(elemtype *a);
fun3(elemtype a);

请问a1,a2,a3分别能做为fun1,fun2,fun3中哪几个函数的参数?

a1-f1,f3
a2-f2
a3-f1,f3
分享到:
评论

相关推荐

    引用即别名,与指针相似,改变被绑定的对象则引用也改变,如:.md

    个人笔记,别看

    jpa 别名转实体

    别名的作用是为了使查询语句更加简洁易读,并且在结果处理时可以更方便地引用字段。例如,`SELECT u.username AS aliasName FROM User u`,这里的`aliasName`就是别名。 **别名转实体的实现步骤:** 1. **定义实体...

    android 布局别名的应用

    布局别名,顾名思义,就是为一个已经存在的布局文件创建一个别名,通过这个别名来引用布局。在Android的资源目录中,我们可以创建一个XML文件,这个文件并不包含任何UI元素的定义,而是使用`&lt;include/&gt;`标签指向实际...

    gulp-miniprogram-path-alias:小程序路径引用别名

    支持小程序资源相关组件的引用别名(如:图像/视频/音频/网络视图等)。 安装 npm install --save-dev gulp-miniprogram-path-alias 用法 . ├── src │ └── common └── gulpfile.js 在你的gulpfile.js添加...

    c++中的引用和形参

    2. 声明引用完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。 3. 引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用...

    C++引用.txt

    引用也叫做别名,为一个变量起一个名字,二者代表同一地址,也代表同一变量。 int a=1; int &b=a;//b是a的一个变量,初始化为a 声明一个变量时必须对其进行初始化。 声明一个变量的引用后,在函数执行期间,该引用...

    C++指针与引用的区别

    指针是一个变量,它存储了某个内存地址,而引用只是一个别名,它本身不占用内存空间。 2. 引用使用时无需解引用(*),指针需要解引用;在使用指针时,需要使用解引用符号(*)来获取指针所指向的内存地址,而引用...

    c++按引用传递

    在C++中,引用(Reference)是一种别名,用于给一个已有的对象起别名。例如,int m; int &n = m;这里,n是m的别名,任何对n的操作实际上都是对m的操作。引用是一种强类型的别名,必须在初始化时指定其对应的对象。 ...

    c++中指针和引用的区别

    概念上,指针是一个变量,它存放的是变量的地址,而引用是一个别名,它是某个变量的别名。指针可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用必须在一开始就被初始化,而且其引用...

    c++面试题题目集锦

    首先,指针是一个独立的实体,需要在内存中分配空间,而引用则是变量的别名,不需要额外的内存。引用在声明时必须初始化且不可改变,而指针在声明时不初始化也是允许的,而且它可以指向不同的内存位置。 在多级指针...

    第十一课 类型别名1

    在前端开发中,类型别名(Type Aliases)是TypeScript中的一个重要概念,它允许我们为现有的类型创建一个新的名称,以便在代码中更方便地引用。类型别名并不创建新的类型,而是为已存在的类型提供了一个别名,使得在...

    SQL字段别名的用法

    在后续的数据处理中,可以通过 `a` 来引用该列。 #### 5. 实践操作 让我们通过一个简单的例子来展示如何在实际项目中使用字段别名。 假设我们有一个员工表 `employees`,其中包含 `first_name` 和 `last_name` 列...

    22.Oracle的别名1

    表别名的使用可以简化表的引用,而列别名则可以改善输出结果集的列标题。以下是一些使用别名的例子: 1. **列别名**: - 直接在列名后加空格和别名,如 `name 姓名`。 - 使用 `as` 关键字,如 `name as 姓名`。 ...

    指针传递和引用传递的区别

    而引用则是一个别名,它总是绑定到一个特定的对象,并且在创建时必须初始化,一旦绑定后就不能更改。 在函数参数传递方面,指针传递参数实际上是值传递的一种形式,传递的是变量的地址值。这意味着在函数内部对指针...

    指针和引用的区别

    2. **引用**:引用是一个别名,它代表另一个已存在的变量。引用与原变量共享同一块内存空间。 #### 三、现象层面的区别 - **指针**可以在运行时改变其所指向的值。这意味着你可以通过指针变量来修改其指向的数据。 ...

    java中的引用问题

    多个引用可以指向同一个对象,它们的值(即内存地址)相同,但引用本身是不同的变量,占用各自的内存空间。 5. 引用操作的注意事项: - 当传递引用类型参数时,如果在方法内改变引用(例如,`b = new Something();...

    webpack+vue中使用别名路径引用静态图片地址

    主要介绍了webpack+vue中使用别名路径引用静态图片地址,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    利用引用的方式求圆的面积

    在编程领域,尤其是在C++这样的语言中,"引用"是一种非常重要的概念,它提供了一种安全的别名机制,使得我们可以像操作变量本身一样操作引用。在这个特定的案例中,"利用引用的方式求圆的面积"涉及到的是如何通过...

    C++引用 。.

    - 在这里,`ra` 是 `a` 的引用,即 `a` 的别名。 - **特点:** - 引用声明时必须初始化。 - 引用一旦绑定到一个变量上,就不能再指向另一个变量。 - 引用本身不是一种新的数据类型,因此不占用额外的存储空间。 ...

    C++中的引用

    引用不同于指针,它更像是一个变量的别名,一旦引用被初始化为某个变量,就不能再改变引用的目标。本文将深入探讨C++中的引用,并对比其与其他引用的区别。 首先,我们来了解引用的基本概念。引用的声明方式是通过...

Global site tag (gtag.js) - Google Analytics