主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C++

C++ 基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

C++ 字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

C++ 函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

C++ 面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

C++ 高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

C++ 指针


上一章 下一章

C++ 指针的学习既简单又有趣。一些 C++ 任务使用指针更加容易完成,而其他任务,如动态内存分配,没有它们就无法实现。

正如你所知,每一个变量都是一个内存位置,每一个内存位置都有其定义的地址,可以通过使用取址运算符 & 来访问。下面是一个示例,它将打印出已定义变量的地址:

示例

#include <iostream>

using namespace std;
int main () {
   int  var1;
   char var2[10];

   cout << "var1 变量的地址: ";
   cout << &var1 << endl;

   cout << "var2 变量的地址: ";
   cout << &var2 << endl;

   return 0;
}

当以上代码被编译和执行时,它产生如下结果:

var1 变量的地址: 0xbfebd5c0
var2 变量的地址: 0xbfebd5b6

什么是指针?

指针是一个其值为另一个变量地址的变量。就像任何变量或常量一样,在使用之前必须声明一个指针。指针变量声明的一般形式是:

type *var-name;

在此处,type 是指针的基本类型;它必须是一个有效的 C++ 类型,而 var-name 是指针变量的名称。你用来声明指针的星号(*)与用来表示乘法的星号相同。然而,在这个声明中,星号用来标记一个变量是指针。以下是有效的指针声明:

int    *ip;    // 指向整数的指针
double *dp;    // 指向双精度浮点数的指针
float  *fp;    // 指向浮点数的指针
char   *ch;    // 指向字符的指针

所有指针的实际数据类型,无论是整型、浮点型、字符型或其他类型,都是相同的,一个长的十六进制数字代表一个内存地址。不同数据类型的指针之间的唯一区别是指针所指向的变量或常量的数据类型。

C++ 中的指针使用

有几个重要的操作我们会频繁地与指针一起使用。(a)我们定义一个指针变量。(b)将一个变量的地址赋给一个指针。(c)最后访问指针变量中可用地址上的值。这是通过使用单目运算符 * 来完成的,该运算符返回其操作数所指定地址处的变量的值。以下示例使用了这些操作:

示例

#include <iostream>

using namespace std;

int main () {
   int  var = 20;   // 实际变量声明。
   int  *ip;        // 指针变量

   ip = &var;       // 将 var 的地址存储在指针变量中

   cout << "var 变量的值: ";
   cout << var << endl;

   // 打印存储在 ip 指针变量中的地址
   cout << "存储在 ip 变量中的地址: ";
   cout << ip << endl;

   // 访问指针中可用地址上的值
   cout << "*ip 变量的值: ";
   cout << *ip << endl;

   return 0;
}

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

var 变量的值: 20
存储在 ip 变量中的地址: 0xbfc601ac
*ip 变量的值: 20

C++ 指针

指针有许多但容易理解的概念,并且它们对于 C++ 编程非常重要。以下是 C++ 程序员应该清楚的一些重要指针概念:

序号 概念 & 描述
1 空指针
2 指针算术
3 指针与数组
4 指针数组
5 指向指针的指针
6 向函数传递指针
7 从函数返回指针
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图