注:(const指针在这里代表的是指向变量的指针,常指针不考虑)

相同点:1.一个const引用可以引用一个非const变量

int a = 3;

const int& b = a;

一个const指针可以指向一个非const变量

int a = 3;

const int* b = &a;

2.一个const引用可以引用一个const变量

const int a = 3;

const int& b = a;

一个const指针可以指向一个const变量

const int a = 3;

const int* b = &a;

3.一个非const引用不可以引用一个const变量

const int a = 3;

int& b = a;//是错误的,可以通过b来改变的a的值,但是a在这里是常量,不可以改变

一个非const指针不可以引用一个cosnt变量

const int a = 3;

int* b = &a;//是错误的,可以通过b来改变的a的值,但是a在这里是常量,不可以改变

4.指向的都是变量的内存地址。

不同点:1.引用是一个变量的另外一个名字

定义方式:

int a = 3;

int& b = a;//储存的是值

指针是一个变量的拷贝,复制体

int a = 3;

int* b = &a;//储存的是地址

2.定义:

引用只能对已经存在的变量或对象实现引用

而指针则不需要,可以定义为空;

3.传参:

如果传递的是一个引用,意味着这个变量或对象已经存在了;

如果传递的是一个指针,则不能判断这个指针是不是有效的,是不是空的 ... ...

所以,引用较为安全。

虽然传引用较为安全,但是也是利用指针来实现的,所以指针的效率要比引用高一些。

4.引用直接去访问变量,不用分配自己的内存空间,而指针是间接访问,需要有自己的内存空间

例子:

//传引用实现两个变量的值的交换

#include

void sw(int &,int &);//声明

int main(int argc,char *argv[]){

int a = 100;

int b = 999;

sw(a,b);

printf("a=%d\n",a);

printf("b=%d\n",b);

}

void sw(int& x,int& y){

int temp = 0;

temp = x;

x = y;

y = temp;

}

//传引用直接可以把定义的两个变量赋给函数

//而传指针要定义两个指针,然后进行传递

#include

void sw(int *,int *);//声明

int main(int argc,char *argv[]){

int a = 100;

int b = 999;

int* x = &a;//定义指针

int* y = &b;//定义指针

sw(x,y);//传指针

printf("a=%d\n",a);

printf("b=%d\n",b);

}

void sw(int* x,int* y){

int temp = 0;

temp = *x;

*x = *y;

*y = temp;

}

c语言 指针 a= amp b,c语言初学-引用和指针的异同点相关推荐

  1. 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )

    文章目录 I . 引用概念 II . 引用声明 III . 引用 地址 内存 分析 IV . 常引用 V . 引用作为参数 VI . 引用 与 指针 对比 I . 引用概念 C++ 对 C 扩充 : ...

  2. c语言指针课堂教学设计,C语言程序设计 指针 C教学设计8单元V1.0.doc

    教学设计 河北工业职业技术学院 "C语言程序设计"教学设计 系 别: 计算机技术系 设计教师: 宋铁桥 设计时间: 2017年4月25日 教学内容 第八单元 指针 授课教师 宋铁桥 ...

  3. 引用和指针的区别?传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?

    引用和指针的区别 (1) 引用在创建的同时必须初始化,即引用到一个有效的对象:而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联 ...

  4. C++指针详解(指针初始化与回收,常量与指针,引用与指针)

    C++指针详解 1.指针的定义初始化以及回收 2.常量与指针 1)常量指针(常指针) 2)指针常量 3)总结 3.引用与指针 1.指针的定义初始化以及回收 指针是一个地址,这个地址内存放数据,这些数据 ...

  5. c语言输入后没答案,C语言章节习题及答案(无指针)解读.doc

    C语言章节习题及答案(无指针)解读 <C程序设计>复习题集 第2章 基础概念 一.选择题(在下列各题的A).B).C).D)四个选项中,只有一个选项是正确的) 2.1以下叙述中正确的是 A ...

  6. c语言课程设计链表 文件,C语言课程设计第三节课:指针和链表使用     150809205...

    一.学习体会 C语言的难点就是指针,学习的时候感觉指针的难点在于与其相关的技术和方法很多,所以学习              的时候并不能像前边一样一个知识点一道题就明白了. 二.以下是我对指针原理的 ...

  7. c语言指针尚观嵌入式,C语言-指针

    本文目录 •直接引用 •一.什么是指针? •二.指针的定义 •三.指针的初始化 •四.指针运算符 •五.指针的用途举例 •六.关于指针的疑问 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...

  8. C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针

    目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...

  9. c语言普通变量间接访问,C语言学习笔记-指针

    野指针问题 野指针是没有指向地址的指针,也就是该指针指向的地址是随机的. 因为指针的指向地址是随机的,所以很有可能指向不可访问的弟子,导致程序崩溃,或者访问了不该访问的地址,导致影响其他功能使用 为了 ...

最新文章

  1. 【pytorch】nn.conv1d的使用
  2. 手机屏幕 高宽有哪些_企业文化不仅要上墙,更要霸屏!企业文化如何在线上进行宣传?如何在屏幕上宣传?看这篇就够了!...
  3. RabbitMQ的四种交换机
  4. 网易云信集成视频教程(三):如何通过SDK实现自定义消息?
  5. 架构设计-数据访问层简述
  6. 机器学习笔记(六)数据分类
  7. IDEA操作 名字快速驼峰等操作
  8. 手机微信如何设置浏览器打开时提醒
  9. GPS精确授时方法研究-基于ublox GPS
  10. Paxos算法原理与推导
  11. 项目上线流程-实时Flink
  12. Android RSASHA加密
  13. linux 实现离线迅雷,Linux下使用wget/aria2进行离线迅雷批量下载
  14. java实时获取android网速_Android中获取实时网速(2)
  15. 谷粉搜搜 九尾搜索 推荐
  16. 我用源码搭建直播网站
  17. Hibernate主键生成策略总结
  18. 华钜同创:亚马逊运营新品广告运营的策略
  19. PS磨皮滤镜Portraiture2.3简体中文绿色版32b/64b
  20. 带你开发类似Pokemon Go的AR游戏(2)

热门文章

  1. 5页面调用原生相机_React Native与原生通信全梳理(iOS端)
  2. 列表查询,添加功能---JSP,servlet
  3. 5G频谱相争“兵戎相见”各相部署风起云涌
  4. 通过FFMPEG代码学习函数指针和指针函数
  5. 转:Ogre的MaterialSystem分析
  6. JS(截取字符串,显示当前系统时间yyyy-MM-dd,从文本框得到的数值计算)
  7. 3.1 Android组件intent filter
  8. OA选型 寻找应用中的个性
  9. C# 如何获取屏幕分辨率缩放比例
  10. WebDriver(C#)之十点使用心得