c语言地址符作用,理解C语言取地址符
&的两个常用地方
C语言取地址符&的有两个常用的地方。
一个是,为指针变量赋值的时候
int m = 214;
int *i = &m;
第二个是,在函数的形式参数中出现在形参变量的前面
void func(int* &i)
{
}
概念混淆
上述第一个概念,比较明确,取地址赋给指针型变量。
但是在学习数据结构写算法的时候,常会用到上面第二种情况,当指针类型和&符号在一起使用的时候,我变得很迷茫,一时搞不清这个符号到底是什么意思,实参该传什么呢? 指针变量还是取地址?
理解
实际上,当&在形参中出现的时候,只是表明这个函数的参数是引用传递而已(不必纠结它的取地址符含义)。同时在实际传参的时候,该传什么类型还是传什么类型。之所以,产生混淆,就是因为*和&同时出现在了参数列表中,没有理解指针其实不过也是一种特殊的类型而已, &只是用来表明这是一次引用传递。
引用传递和非引用传递的一个区别:
引用传递的时候,函数调用时的实参可以不用初始化。但是非引用传递的时候,实参必须初始化,否则在运行时会报错。
void func (int &i)
{
}
func(214); // 形参中的&表明是一次引用传递。参数类型是整形
void func(int * &i)
{
}
int * i;
func(i); // 参数类型是指针型而已。 传入的参数也应该是指针类型,可以不用初始化
void func(int * i)
{
}
int *i;
func(i); // 运行时报错!!(根据形参形式,表明非引用传递,函数调用时,变量需要提前初始化。)
c语言地址符作用,理解C语言取地址符相关推荐
- 视频教程-C语言-从汇编角度理解C语言的本质-C/C++
C语言-从汇编角度理解C语言的本质 擅长JavaWeb开发,游戏逆向外挂与反外挂,游戏保护对抗 孙冉 ¥49.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅 ...
- c语言 结构体 占位符,深入理解结构体中占位符的用法
深入理解结构体中占位符的用法 复制代码 代码如下: typedef union { struct x{ char a1 : 2; char b1 : 3; char c1 : 3; }x1; char ...
- C语言数组和指针的理解_在取地址运算上的操作_指针加减操作_a 和a 的区别
1.一个实例+理论分析 在了解数组和指针的访问方式前提下,下面再看这个例子: main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); pr ...
- c语言中数组名和数组名取地址理解
1.数组名是个指针型常量,也就是值不能被改变.(指针常量和常量指针区别见本文) char *str = "hello"; char ch[6] = "hello&quo ...
- c语言中语句作用,学习C语言的用途~
原标题:学习C语言的用途~ C是基础的语言 C语言被广泛用于操作系统和编译器的开发 功能非常强 虽然现在不是最流行但是 最基础的东西是也比较好学的语言 如:金山的创始人江明 从30多岁开始学语言 学的 ...
- c语言程序设计课程作用,《C语言程序设计》课程标准
<C语言程序设计>课程标准 适用专业: 三年制中职计算机应用专业 一.前言 (一)课程的性质 本课程是中职软件与信息服务专业的一门主干专业基础课程,旨在培养学生计算机编程基本思想.编程基本 ...
- c语言cyc函数,深入理解C语言
导读:Dennis Ritchie过世了,他发明了C语言,一个影响深远并彻底改变世界的计算机语言.一门经历40多年的到今天还长盛不训的语言,今天很多语言都受到C的影 响,C++,Java,C#,Per ...
- c语言 b的作用,在C语言中各个标点符号的作用
满意答案 rain200... 2013.05.17 采纳率:48% 等级:13 已帮助:16953人 分号 是一条语句的结束标志符,每一条语句都必须以分号结尾.冒号 一般在switch语句,三 ...
- %3c故乡%3e中语言描写的作用是什么,语言描写的作用
语言描写的作用2019-05-05 14:39:30文/刘美娟 语言描写是塑造人物形象的重要手段,成功的语言描写总是鲜明地展示人物的性格,生动地表现人物的思想感情,深刻地反映人物的内心世界. 语言能显 ...
- c语言break语句作用,解析c语言switch中break语句的具体作用
解析c语言switch中break语句的具体作用 问题:break在for循环.while循环等循环流程控制中起的作用是停止执行break后面的语句,跳出本次循环,并跳出该循环控制体: 在switch ...
最新文章
- 城市智能化发展中,AI公司应该做什么?
- CSS基础_Day01
- 当深度学习遇上量化交易——公开信息篇
- PsTools在***中的一点小应用
- Spark基本操作SparkSession,DatasetRow,JavaRDDRow
- Microsoft CRM 3.0 Mobile安装手记(二)——Server端安装
- Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果
- 优酷视频如何分享个人主页
- 2018-2019-1 20165325 《信息安全系统设计基础》第七周学习总结
- 看我打脸Message Pack
- linux+广播程序,Linux系统下广播程序制作介绍(上) (3)
- 为什么录像总是很暗_为什么拍出的的照片总是很暗?看下是不是这2个原因造成的...
- 番茄时间--C#实现
- 第三方接入-飞猪酒店商品发布流程
- ExtJS实战教程~~前言
- C# 获取url 状态,获取重定向(HttpWebRequest)
- 1一10到时的英文单词_1到10的英文单词
- 目标检测:YOLO V1、YOLO V2、YOLO V3 算法
- Android鹰眼轨迹追踪
- 二级管的正向恢复与反向恢复时间
热门文章
- C语言实现任何文件的加密解密
- php 汉字拼音字典排序,按拼音排序的小技巧
- 算数平均数、中位数、众数和几何平均数
- 干货 | 携程机票数据仓库建设之路
- 数据库的四个文本类型的差异
- xp计算机用户名和密码忘记了怎么办,xp电脑开机密码忘记了怎么办,xp忘记开机密码的解决方法...
- 分位数回归(Quantile Regression)
- Calendar类你可能不知道的坑
- @click.prevent.native作用
- 编写函数void reverse(string s),用递归算法使字符串s倒叙