首页 > 编程语言 >c/c++ 指针的江湖传说

c/c++ 指针的江湖传说

时间:2023-11-03 22:59:50浏览次数:30  
标签:变量 int 江湖 pX c++ 地址 ppX 指针

万物皆内存,内存有两个东西:地址、值。

普通变量、引用变量、指针变量,二级指针变量,数组,指针数组...等等,皆内存。

【指针】

int x = 10;         //变量
int* pX = &x;       //指针变量
int** ppX = &pX;    //二级指针变量
//地址,值
std::cout << &x << "," << x << std::endl;
std::cout << &pX << "," << pX << std::endl;
std::cout << &ppX << "," << ppX << std::endl;

x、pX、ppX都是“值”。只不过有的“值”刚好是所指向内存的“地址”,所以课本上、网络上将pX、ppX说成“地址”。

良好的命名习惯,有助于指针的快速理解而不会晕头转向。一级指针p开头,二级指针pp开头,遇*则抵消,剩者为真身。

*pX→x,值 10

*ppX→pX,值 00000086ECBBF604

**ppX→x,值 10

【指针大小】

开篇图中,只有10是int型,占4字节。其他的“值”“地址”都是地址属性,64位系统中占8字节,32位系统中占4字节。

为了稳妥,可以用 long long承接地址。

 

【数组】

标签:变量,int,江湖,pX,c++,地址,ppX,指针
From: https://www.cnblogs.com/xixixing/p/17808664.html

相关文章

  • c++入门基础
    c++打算法竞赛的优点是,输入输出比较方便,里面封装的stl库可以直接用,例如sort排序,直接一行代码就行了,时间复杂度也很友好。整数:输入:输出:小数:输入:输出:数组:输入:输出:字符串:输入:输出:结构体:输入输出:模板:点击查看代码#include<bits/stdc++.h>usingnames......
  • 浅析C++中浮点数在内存中的存储方式
    1.任何数据在内存中都是以二进制的形式进行存储。例如,short型数据1156,由于在32位机和64位机都占2B一共16位其二进制形式为:0000010010000100。在IntelCPU架构的系统中(目前用的最多的硬件架构系统),存放方式为10000100(低地址单元)00000100(高地址单元),因为IntelCPU的......
  • 梳理C++各种数据类型所占字节数和表示范围
    Outline1.数据类型所在字节数与程序运行平台有关2.列举各种数据类型所占字节数1.数据类型所在字节数与程序运行平台有关不同的平台上对不同数据类型分配的字节数是不同的。平台环境的理解:硬件架构操作系统(OS)编译器(Compiler)程序的运行环境取决于上述配件。原因:64位机......
  • 使用C++实现Range序列生成器
    在C++编程中,经常需要迭代一系列数字或其他可迭代对象。通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读。如果你使用过Python语言那么一定对Range语句非常的数据,我们可以使用C++来实现一个简单的Range封装,如下代码定义了一个名为Range的命名空间......
  • 使用C++实现Range序列生成器
    在C++编程中,经常需要迭代一系列数字或其他可迭代对象。通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读。如果你使用过Python语言那么一定对Range语句非常的数据,我们可以使用C++来实现一个简单的Range封装,如下代码定义了一个名为Range的命名空间,......
  • C++ float与double类型的简单区别
    1.有效位数与精度有效位和精度的两个概念是不同的,我们先说float和double各自的有效位。在float与double中默认的有效位都是6位有效位,意思就是从第一个不为0的数字算起有6个数字是有效的后边无效的数字也不会显示,如下图:代码:运行结果:可以看出不管你的float定义的有多少位小......
  • C++ 字符串与数值间的转换(只归纳了常用情况)
    很多编程中字符串与数字间的转换是一种常见的需求下面总结了C++中字符串与数值间是如何进行转换的。目录:1.字符串转数字(C版本)2.字符串转数字C++风格3.数字转字符串1.字符串转数字(C版本)strings1="123";strings2="123.1";inti=atoi(s1.c_str());......
  • C++的对象与类的含义
    C++是一门面向对象的编程语言,理解C++需要掌握类(class)和对象(object)这两个概念。C++中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个变量拥有相同的性质。例如:#include<s......
  • C++头文件和std命名空间
    C++是在C语言的基础上开发的,早期的C++还不完善,不支持命名空间,没有自己的编译器,而是将C++代码翻译成C代码,再通过C编译器完成编译。这个时候的C++仍然在使用C语言的库,stdio.h、stdlib.h、string.h等头文件依然有效;此外C++也开发了一些新的库,增加了自己的头文件,例如:iostream......
  • C++函数重载
    在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是int、float、char、bool等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:voidsw......