首页 > 编程语言 >图解C++中的寻址。指针常量,常量指针。const int *p ,int * const p

图解C++中的寻址。指针常量,常量指针。const int *p ,int * const p

时间:2024-07-17 16:59:15浏览次数:15  
标签:const 常量 int 修饰 main 指针

输出方式

1.直接输出——采用直接寻址,输出内存块中的操作数,变量值

变量名代替地址,容易记忆。

int main() {
    int a = 10;//a = 0x99fd
    cout << a << endl;//10,输出时系统采用直接寻址,输出a地址中存储的操作数
    return 0;
}

在这里插入图片描述

2.取地址,&a——输出地址


int main() {
    int a = 10;
    cout << &a << endl;//&a=0x97005ff64c
    return 0;
}

在这里插入图片描述

3.间接寻址,*p=一次间址

int main() {
    int a = 10;
    int *p =&a;
    cout << &a << endl;//&a=0x97005ff64c=操作数地址
     cout << p << endl;//p=0x97005ff64c=操作数地址
    cout << *p <<endl;//10,一次间接寻址
    return 0;//
}

在这里插入图片描述

指针-常量

1.const 修饰,常量指针(const修饰*p)

指针指向的值不可以修改,指针可以修改

在这里插入图片描述

int main() {
    int b = 10;
    const int *p = &b;//const(常量) int *p (指针)
    b = 20;
    *p = 30;//报错,const修饰*p。故*p不可以被修改。但是可以直接通过变量b去修改
    cout << p << endl;
    cout << b << endl;
}

2.const修饰常量——指针常量(const修饰p)

指针指向不可以修改,指针指向的值可以修改

在这里插入图片描述

int main() {
  //const修饰p,指针不可以改,指针指向的值可以更改
	int * const p = &a; //*(指针)  const(常量)
	 p = &b; //错误,const修饰p,故p不可以被赋值
	*p = 100; //正确
}

标签:const,常量,int,修饰,main,指针
From: https://blog.csdn.net/dabingbigice/article/details/140475160

相关文章

  • 指针的初步认识
    1.什么是指针?    1.1什么是数据/变量的地址        地址就是数据在内存中的存储位置。指针就是数据在内存中的存储地址,或者叫数据在内存中的编码位置。    1.2指针变量        用来存储指针/地址的变量叫做指针变量。 ......
  • Divide Interval 题解
    背景太逊了,调了三次才调出来,所以写篇题解寄念。LC好睿智题意给你两个数\(a,b\),现在要从\(a\)跑到\(b\),每次可以将当前的\(a\)拆分成\(2^n\timesm(n,m\inN)\)的形式,并将它变成\(2^n\times(m+1)\)。问最少变几次能跑到\(b\),输出次数和每次变化前后\(a\)的值。分......
  • python tkinter 界面设计(1)
    pythonGUI设计tkinter模块tkinter是一个开发源码的图形接口开发工具,目前已经已经一直到python内建的模块。下面从窗体开始慢慢开始整理,图1,查看tkinter版本,8.5以后得版本功能比较健全。图2,创建窗体。 图3-图5,是对窗体的属性设置。  有需要了解更多内容的小伙伴,可......
  • 避免函数形参为空指针
    展示一个函数形参为空指针的隐患:执行第32行代码时,相当于执行double*pdPoint=pdTemp;,由于pdTemp=NULL,所以pdPoint=NULL。在然后 voidPointer(double*pdPoint,intiDim)函数中对pdPoint赋了一块动态内存,此时 pdPoint!=NULL,但是 pdPoint和pdTemp只是赋值......
  • day1 二分查找(及其进阶)和移除元素的双指针法
    基础概念算法的单调性:问题的规模随着算法的推进不断缩减(如704中开始的查找区间是[lo,hi),随着循环的进行,问题规模确实在不断的缩小)算法的不变性:在初始状态下自然满足,当问题的有效规模缩减为0时,不变性应该随即等于正确性。(如704中开始的查找区间是[lo,hi),最终要么直接命中,要么......
  • C++ 智能指针动态内存简单测试
    代码示例,主要来自《C++Primer》,动态内存相关那章内容。#include<iostream>#include<memory>#include<string>namespace{//未初始化的智能指针,默认保存的空指针voiddef_null_sp_test();//不是唯一用户,复制一份新的考拷贝。voidsp_unique_copy_te......
  • c++ Program to print pyramid pattern (打印金字塔图案的程序)
    编写程序打印由星星组成的金字塔图案 例子: 输入:n=6输出:    *    **    ***    ****    *****    ******     *****    ****    ***    **     *......
  • 自己实现sprintf功能,用于把三个float转换成字符串格式,速度比sprintf快了20倍
     float转字符串使用sprintf太慢了,自己实现sprintf功能,用于把三个float转换成字符串格式,速度比sprintf快了20倍!运行结果如下图:例程:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#defineRUN_COUNT10000000//运行次数/*实现sprin......
  • var、let、const 之间的区别
    1.作用域var:具有函数作用域或全局作用域。这意味着在一个函数内部声明的变量在整个函数内部都是可见的,而在函数外部声明的变量在整个脚本或全局范围内可见。let 和 const:具有块级作用域。这意味着变量仅在其声明的代码块内(如if语句或循环)可见。2.变量提升(Hoisting)......
  • Intel Management Engine WMI Provider 2408.5.4.0 20240221 驱动程序 Intel管理引擎
    驱动程序"IntelManagementEngineWMIProvider2408.5.4.0"是指Intel管理引擎的一部分,它通过Windows管理仪表(WMI)提供对管理引擎功能的访问和管理。这些驱动程序通常用于管理和配置Intel管理引擎的功能,包括安全功能、远程访问以及系统监控等。如果您需要安装或更新这个驱......