C/C++学习之C/C++中*和&的用法
小职 2020-12-16 来源 :https://hermetic.ch/cfunlib/ast_amp2.htm 阅读 855 评论 0

摘要:在C/C++中,*和&有很多用法,具体的使用要根据代码内容来确定,本篇主要介绍了*与&d的用法,希望对于C/C++的学习有所帮助。

在C/C++中,*和&有很多用法,具体的使用要根据代码内容来确定,本篇主要介绍了*与&d的用法,希望对于C/C++的学习有所帮助。

C/C++学习之C/C++中*和&的用法


 C++中&和*的用法一直是非常让人头疼的难点,课本博客上讲这些知识点一般都是分开讲其用法的,没有详细的总结,导致我在这方面的知识结构格外混乱,在网上找到了一篇英文文章简单总结了这两个符号的一些用法,都是一些比较基础的知识,我比较关心的函数指针,指针函数等都没有涉及到,今后有时间把这部分学明白整理出来。


C/C++中*和&的用法

C++语言是C语言的超集。几乎所有可以运行的C程序都是可以运行的C++程序。因此,写一个不包含C++特性的C++程序是可能的,尽管cout和引用的使用(见下文)更好的构成了一个C++程序。C++和C在代码格式上偶尔会有不同,比如,在C语言中,我们这样把p声明为一个int类型的指针 int *p,而在C++中我们使用int* p(编译器并不在意你使用的是哪种格式)。

 

在C/C++中,*和&有很多用法,具体的使用要根据代码内容来确定。

 

C中*的用法

 

(a)    乘法运算:x=y*z;

 

(b)    乘法赋值运算:x*=y;相当于x=x*y

 

(c)    注释:/*这里是你的注释*/

 

(d)    指针的声明:int *p 或 int* p; 读法:p是指向一个整数类型的指针。

 

(e)    复合指针: int **p; 或 int** p; 读法 p是一个指向一个指向整数类型的指针的指针。(同样道理, int***p等等)

 

(f)     解引用: x=*p 把指针p指向的值赋值给x

 

&在C语言中的用法

 

(a)     逻辑与:if((a>1)&&(b<0))

 

(b)    位运算与:x=a&b;

 

(c)     逻辑与赋值:x&=y;与 x=x&y含义相同

 

(d)    求地址运算符:p=&x;读法:把x的地址赋给p(指针)

 

C++中&的补充用法

 

C++中有一种C不存在的变量类型引用变量(简单说来为引用),尽管在C语言中用指针也可以实现类似的功能。

 

引用,指针,地址是联系密切的概念。地址是在电脑内存中的地址(一般是一些变量的值在内存中的储存位置),指针是存地址的变量,所以指针可以“指向”内存地址。概念上讲,引用变量本质上是指针的另一个名字(但是并不能被编译器实例化)

 

在函数内像其他变量一样定义一个引用是可能的;举例

 

void main(void)

{

int i;

int& r = i;

...

}

 

但是这是没有意义的,因为引用的使用和对引用的变量的使用是一样的。

 

引用在函数的参数中被使用。

 

void main(void)

{

int i=3;

f(i);

cout << i;

}

void f(int& r)

{

r = 2*r;

}

这段程序输出“6”(2*r使被r引用的变量加倍,也就是指i)

在C语言中,实现同样的功能,我们可以通过声明f()为void f(int *r),其中r是指向整数类型的指针,然后调用参数&i(i的地址)调用函数f(),在函数f()内使用r的解引用,但是显然,C++提供了一种更简明的通过引用的方式向函数传值,从函数中返回值。



关注“职坐标在线”(Zhizuobiao_Online)公众号,免费获取学习视频资料、技术就业咨询。

C/C++学习之C/C++中*和&的用法

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程