当前位置: 首页 > news >正文

C++ 指针运算符( 和 *)

C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *。

指针是一个包含了另一个变量地址的变量,您可以把一个包含了另一个变量地址的变量说成是"指向"另一个变量。变量可以是任意的数据类型,包括对象、结构或者指针

取地址运算符 &

& 是一元运算符,返回操作数的内存地址。例如,如果 var 是一个整型变量,则 &var 是它的地址。该运算符与其他一元运算符具有相同的优先级,在运算时它是从右向左顺序进行的。

您可以把 & 运算符读作"取地址运算符",这意味着,&var 读作"var 的地址"。

间接寻址运算符 *

第二个运算符是间接寻址运算符 *,它是 & 运算符的补充。* 是一元运算符,返回操作数所指定地址的变量的值

请看下面的实例,理解这两种运算符的用法。

#include <iostream>
using namespace std;
int main ()
{
   int  var;
   int  *ptr;
   int  val;
   var = 3000;
   // 获取 var 的地址
   ptr = &var;
   // 获取 ptr 的值
   val = *ptr;
   cout << "Value of var :" << var << endl;
   cout << "Value of ptr :" << ptr << endl;
   cout << "Value of val :" << val << endl;
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

Value of var :3000
Value of ptr :0xbff64494
Value of val :3000

调用时变量前加 "&" -------返回该变量的地址

声明时变量前加 "基本类型 *" -------该指针变量表示另一个普通变量的地址   eg:int * 或 char *

调用时变量前加 "*"-------表示取该地址的内容

声明时变量前加 "基本类型 **"-------该二级指针变量表示另一个一级"基本类型 *"指针变量地址   

相关文章:

  • C++中 引用与取地址的区别
  • C/C++语言中函数参数传递的三种方式(x,*x,x)
  • VC 和 VS 区别
  • 什么是Windows API
  • c++类与对象用多文件编写以及vs的操作步骤
  • DUMPBIN工具的使用
  • DLL的创建和使用(含代码)
  • _T() 函数
  • DirectUI
  • 托管与非托管
  • 什么是回调函数?
  • ShowWindow与UpdateWindow
  • VS2015无法打开源文件#include “iostream.h“的解决方法
  • BHO
  • 开放平台
  • 【Leetcode】104. 二叉树的最大深度
  • C++11: atomic 头文件
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Cumulo 的 ClojureScript 模块已经成型
  • emacs初体验
  • github指令
  • JDK9: 集成 Jshell 和 Maven 项目.
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Redux系列x:源码分析
  • 笨办法学C 练习34:动态数组
  • 从0实现一个tiny react(三)生命周期
  • 从tcpdump抓包看TCP/IP协议
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 力扣(LeetCode)357
  • 前端面试题总结
  • 日剧·日综资源集合(建议收藏)
  • 使用common-codec进行md5加密
  • 项目实战-Api的解决方案
  • 学习JavaScript数据结构与算法 — 树
  • 延迟脚本的方式
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 原生js练习题---第五课
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • raise 与 raise ... from 的区别
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #include到底该写在哪
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (floyd+补集) poj 3275
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (四) 虚拟摄像头vivi体验
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)kafka实战——kafka源码编译启动
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core 通过 Ef Core 操作 Mysql