C/C++ 指针和自由存储空间

计算机程序在存储数据时跟踪三种基本数据:
    1. 信息存储在何处;
    2. 存储的值为多少;
    3. 存储的信息是什么类型。
    
        通常我们为了达到上述的目的,会定义一个简单变量。声明语句指出了值的类型和符号名,还让程序为值分配内存,并在内部跟踪该内存单元。
        下面来看另一种策略,它在开发C++类时非常重要。这种策略以指针为基础,指针是一个变
量,其存储的值是地址,而不是值本身。我们先看是如何找到常规变量的地址。只需对变量应用地址运算符(&),就可以获得它的位置。
        显示地址时,我们经常使用十六禁止表示法,因为这是常用于描述内存的表示法(有些实
现可能使用十进制表示法)。
    
        使用常规变量时,值是指定的量,而地址为派生量。
        处理存储数据的新策略刚好相反,将地址视为指定的量,而将值是为派生量。一种特殊类型的变量-- 指针用于存储值的地址。因此,指针名表示的是地址。*运算符被陈伟间接值或解引用运算符,将其应用与指针,可以得到该地址处存储的值(这和乘法使用的符号相同;C++根据上下文来确定所指的是乘法还是解引用)。
    例如:假设ptr是一个指针,则ptr表示的是一个地址,而*ptr表示存储在该地址处的值。*ptr表示存储在该地址处的值。*ptr与常规int变量等效。

示例源码:

// Len_ptr.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include 
using namespace std;

int main()
{
	int data = 5;
	int *ptr;
	ptr = &data;

	// 显示值的两种方式
	cout << "data = " << data << endl;
	cout << "*ptr=" << *ptr << endl<C/C++ 指针和自由存储空间_第1张图片

你可能感兴趣的:(C/C++学习,c++,算法,开发语言)