C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了指针是什么(详解版)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
执行程序中的每个变量都分配一段足够大的内存来保存该变量类型的值。当前,在 PC 上运行的 C++ 编译器通常给 char 类型的变量分配一个字节,给 short 类型的变量分配两个字节,给 float 和 long 类型的变量分配 4 个字节,给 double 类型的变量分配 8 个字节。

内存的每个字节都有一个唯一的地址。变量的地址是分配给该变量的第一个字节的地址。假设在程序中定义了以下变量:
char letter;
short number;
float amount;
图 1 说明了它们在内存中是如何安排的,并显示了它们的地址。

内存中的变量及其地址
图 1 内存中的变量及其地址

在图 1 中,变量 letter 显示在地址 1200 处,变量 number 在地址 1201 处,而变量 amount 则在地址 1203 处。

图 1 中显示的变量的地址有些随意,仅用于说明目的。事实上,大多数编译器以这样的方式分配空间,即单个变量总是被分配偶数地址。这是因为当前的计算机硬件访问驻留在偶数地址的数据时,速度要比访问驻留在奇数地址的数据更快。

C++ 有一个地址运算符 & 可以用来检索任何变量的地址。要使用它,可以将它放在想要检索地址的变量之前。以下是一个表达式,它将返回变量的地址:

&amount

以下语句可以将变量的地址显示到屏幕上:

cout << long(&amount);

认情况下,C++ 以十六进制打印地址,以上语句则使用了一个函数式的强制转换,使地址以常见的十进制格式打印,转换后的数据类型为 long。下面的程序演示了如何使用地址运算符来显示变量的地址。
//This program uses the & operator to determine a variable's address.
#include <iostream>
using namespace std;
char letter;
short number;
float amount;
double profit;
char ch;

int main()
{
    // Print address of each variable
    // The cast to long makes addresses print in decimal
    // rather than in hexadecimal
    cout << "Address of letter is: " << long(&letter) << endl;
    cout << "Address of number is: " << long(&number) << endl;
    cout << "Address of amount is: " << long(&amount) << endl;
    cout << "Address of profit is: " << long(&profit) << endl;
    cout << "Address of ch is: " << long(&ch) << endl;
    return 0;
}
程序输出结果:

Address of letter is: 5005320
Address of number is: 5005322
Address of amount is: 5005324
Address of profit is: 5005328
Address of ch is: 5005336

值 &amount 指定了计算机内存中 amount 变量的位置:从某种意义上说,它指向的就是 amount 变量。所以,一个表示内存地址位置的值,或者保存了某些变量地址的值,就称为指针

大佬总结

以上是大佬教程为你收集整理的指针是什么(详解版)全部内容,希望文章能够帮你解决指针是什么(详解版)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: