c语言 指针 a= amp b,c语言初学-引用和指针的异同点
注:(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语言初学-引用和指针的异同点相关推荐
- 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )
文章目录 I . 引用概念 II . 引用声明 III . 引用 地址 内存 分析 IV . 常引用 V . 引用作为参数 VI . 引用 与 指针 对比 I . 引用概念 C++ 对 C 扩充 : ...
- c语言指针课堂教学设计,C语言程序设计 指针 C教学设计8单元V1.0.doc
教学设计 河北工业职业技术学院 "C语言程序设计"教学设计 系 别: 计算机技术系 设计教师: 宋铁桥 设计时间: 2017年4月25日 教学内容 第八单元 指针 授课教师 宋铁桥 ...
- 引用和指针的区别?传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?
引用和指针的区别 (1) 引用在创建的同时必须初始化,即引用到一个有效的对象:而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联 ...
- C++指针详解(指针初始化与回收,常量与指针,引用与指针)
C++指针详解 1.指针的定义初始化以及回收 2.常量与指针 1)常量指针(常指针) 2)指针常量 3)总结 3.引用与指针 1.指针的定义初始化以及回收 指针是一个地址,这个地址内存放数据,这些数据 ...
- c语言输入后没答案,C语言章节习题及答案(无指针)解读.doc
C语言章节习题及答案(无指针)解读 <C程序设计>复习题集 第2章 基础概念 一.选择题(在下列各题的A).B).C).D)四个选项中,只有一个选项是正确的) 2.1以下叙述中正确的是 A ...
- c语言课程设计链表 文件,C语言课程设计第三节课:指针和链表使用 150809205...
一.学习体会 C语言的难点就是指针,学习的时候感觉指针的难点在于与其相关的技术和方法很多,所以学习 的时候并不能像前边一样一个知识点一道题就明白了. 二.以下是我对指针原理的 ...
- c语言指针尚观嵌入式,C语言-指针
本文目录 •直接引用 •一.什么是指针? •二.指针的定义 •三.指针的初始化 •四.指针运算符 •五.指针的用途举例 •六.关于指针的疑问 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...
- C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针
目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...
- c语言普通变量间接访问,C语言学习笔记-指针
野指针问题 野指针是没有指向地址的指针,也就是该指针指向的地址是随机的. 因为指针的指向地址是随机的,所以很有可能指向不可访问的弟子,导致程序崩溃,或者访问了不该访问的地址,导致影响其他功能使用 为了 ...
最新文章
- 【pytorch】nn.conv1d的使用
- 手机屏幕 高宽有哪些_企业文化不仅要上墙,更要霸屏!企业文化如何在线上进行宣传?如何在屏幕上宣传?看这篇就够了!...
- RabbitMQ的四种交换机
- 网易云信集成视频教程(三):如何通过SDK实现自定义消息?
- 架构设计-数据访问层简述
- 机器学习笔记(六)数据分类
- IDEA操作 名字快速驼峰等操作
- 手机微信如何设置浏览器打开时提醒
- GPS精确授时方法研究-基于ublox GPS
- Paxos算法原理与推导
- 项目上线流程-实时Flink
- Android RSASHA加密
- linux 实现离线迅雷,Linux下使用wget/aria2进行离线迅雷批量下载
- java实时获取android网速_Android中获取实时网速(2)
- 谷粉搜搜 九尾搜索 推荐
- 我用源码搭建直播网站
- Hibernate主键生成策略总结
- 华钜同创:亚马逊运营新品广告运营的策略
- PS磨皮滤镜Portraiture2.3简体中文绿色版32b/64b
- 带你开发类似Pokemon Go的AR游戏(2)
热门文章
- 5页面调用原生相机_React Native与原生通信全梳理(iOS端)
- 列表查询,添加功能---JSP,servlet
- 5G频谱相争“兵戎相见”各相部署风起云涌
- 通过FFMPEG代码学习函数指针和指针函数
- 转:Ogre的MaterialSystem分析
- JS(截取字符串,显示当前系统时间yyyy-MM-dd,从文本框得到的数值计算)
- 3.1 Android组件intent filter
- OA选型 寻找应用中的个性
- C# 如何获取屏幕分辨率缩放比例
- WebDriver(C#)之十点使用心得