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 = 2r;
}
这段程序输出“6”(2
r使被r引用的变量加倍,也就是指i)
在C语言中,实现同样的功能,我们可以通过声明f()为void f(int *r),其中r是指向整数类型的指针,然后调用参数&i(i的地址)调用函数f(),在函数f()内使用r的解引用,但是显然,C++提供了一种更简明的通过引用的方式向函数传值,从函数中返回值。

在C/C++中常用的符号相关推荐

  1. LaTex数学公式中常用的符号及标记

    LaTex数学公式中常用的符号及标记   最近使用typora记录笔记时,经常需要打印数学公式,因此在网上找了一篇符号表比较齐全的文章:LaTeX数学公式的符号表示.这里我只列出其中一小部分.   另 ...

  2. HTML中常用特殊符号总汇

    HTML中经常会用到一些特殊符号,例如箭头,雪花,心形等等,这些符号就不用css样式或者图片来写了,直接用HTML特殊符号可以实现. 例如,如下HTML代码: <body>&#86 ...

  3. R语言回归表达式中常用的符号

    内容源于课程,侵删.方便大家学习R语言. 符 号                用   途 ~ 分隔符号,左边为响应变量,右边为解释变量. 例如,要通过 x, z, w 预测 y,其R代码为y ~ x ...

  4. c语言中常用符号,C语言中常用的符号.doc

    1.按位与运算 ①概念 "按位与"运算符"&"是双目运算符,其功能是将参与运算两数的各对应二进位相与.只能对应的两个二进位均为1时,结果位才为1,否则为 ...

  5. c语言中常用数学符号,C语言中常用的数学公式

    >在使用C语言数学函数时候,应该在该源文件中使用以下命令行: #include 或 #include "math.h",这里的<>跟""分别表 ...

  6. Word中常用特殊符号的替换表示方法以及相似符号的区别

    Word中, 有一个很重要的功能就是查找和替换; 在替换的时候, 可以用^加相应的字母/符号来表示查找或者替换的特殊符号. 下面是相应的符号列表: 分节符: ^b 段落标记: ^p, 即回车. 手动换 ...

  7. html中常用实体符号

    HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器.其他几种空格(      ‌‍)在不同浏览器中宽度各异.   它叫 ...

  8. 深度学习 机器学习 公式中常用的符号

    θ        theta λ        lambda σ,Σ     sigma δ        delta ε        epsilon β        beta α        ...

  9. Markdown中常用LaTex数学符号和数学公式排版整理

    文本/数学关系通用符号 符号 格式 符号 格式 {\{{ \{ }\}} \} $$$ \$ %\%% \% 希腊字母 符号 格式 符号 格式 A\AlphaA, A\text{A}A \Alpha ...

最新文章

  1. QIIME 2用户文档. 13数据评估和质控Evaluating and controlling(2018.11)
  2. 12.suggest_type
  3. 那位熟读戈培尔语录的“同仁” 我来与您做次探讨
  4. NWT失败反省:明明是自己把公司搞死,却说别人水平不行
  5. multisim10中设置变压器匝数比的两种方法
  6. VS2015+OpenCV3.4.0+dmtx最新版联合集成开发 解析dm码
  7. 逻辑表达式在c语言中作用,C语言中逻辑表达式与关系表达式的值
  8. 12个顶级思维模型,非常值得一看!
  9. 【c++】2.DISALLOW_COPY_AND_ASSIGN的用法
  10. vue项目报错:warning Disallow self-closing on HTML void elements (<img/>)
  11. 以太网供电(POE)的关键技术解析
  12. 从幻想到现实,虚拟人的成长之路
  13. Spring Boot 对基础 Web 开发的支持(下)2-2
  14. winSCP:无权访问。 错误码:3 服务器返回的错误消息:Permission denied解决方案
  15. 月薪20k+的Android面试都问些什么?终获offer
  16. 阿里云无影研发负责人任晋奎:端云技术创新,打造全新用户体验
  17. Ubuntu 查看内核版本
  18. android日常常识记录
  19. android 电脑模拟点击,点击真理电脑版怎么下载 安卓模拟器电脑版下载地址
  20. AcWing 751. 数组的左方区域

热门文章

  1. payjs 源码_第三方支付平台源码,仿支付宝
  2. HTTP请求头字段解释
  3. 网站排名下降怎么恢复(网站降权的原因如何知道)
  4. java8我的世界打不开_我的世界打不开
  5. Ubuntu开发嵌入式串口权限问题
  6. 使用cookie和session实现用户的认证和授权(原生方式,不使用安全框架)
  7. 【ESP32_8266_MQTT篇】
  8. whale 帷幄:crm客户管理营销系统全称是什么
  9. 在线绘制流程图网站、思维导图网站总结
  10. 苹果手机更新ios9后,APP设置