首页 > 编程语言 >【快速学】指针是什么?指针常量、常量指针是什么?(C++)

【快速学】指针是什么?指针常量、常量指针是什么?(C++)

时间:2023-02-10 12:34:33浏览次数:47  
标签:const 变量 int C++ 修改 指针 常量

0、先上总结

  • 指针是什么?指针是个数据类型,它里面存储的是个地址
    • int a=3;,定义了一个int类型的变量a,值为3,它在内存中的地址为&a
    • 同理,int *b=3;,定义了一个int*类型的变量b,值为3,它在内存中的地址为&b
    • 进一步,int *c=&a;,定义了一个int*类型的变量c,值为&a,它在内存中的地址为&c
    • 指针占多大内存空间?
      • 指针变量占用的内存空间大小根据所使用的操作系统及编译环境而定
      • 一般而言,计算机是几位,则指针大小就是几位,如我用的是64位,则指针就占64位(8字节)空间
  • 指针常量是个常量,该常量的值是一个指针类型的值!它不能被修改
    • 它可以指向一个变量,此时可以通过它修改变量的值
    • 它可以指向一个常量,此时不可以通过它修改变量的值
  • 常量指针是个指针。它指向一个常量,不能通过它求出修改那个常量。(指针是变量,它是个指针,故它的值可以被修改)!
    • 它可以指向一个变量,此时不可以通过它修改变量的值
      • 但可通过变量本身修改变量的值
    • 它可以指向一个常量,此时不可以通过它修改变量的值

1、指针常量

指针常量声明格式(做题时看到*放在const的前面即可判定)

int a;
//指针常量声明格式
int *const p = &a; //*放在const的前面(左侧)
//记忆:看“指针常量”这四个字,指针在常量前面,故*放在const的前面
int arr[10];//数组名arr就是一个指针常量

指针常量是一个指针类型的常量,上面的p是一个指向int类型的指针,p不可以被赋值、修改(因为它是常量)

数组名就是一个指针常量

2、常量指针

常量指针声明格式(做题时看到const放在*的前面即可判定)

int a;
//指针常量声明格式
const int * p = &a; //const放在*的前面(左侧)
//记忆:看“常量指针”这四个字,常量在指针前面,故const放在*的前面

 

标签:const,变量,int,C++,修改,指针,常量
From: https://www.cnblogs.com/FishSmallWorld/p/17108424.html

相关文章

  • c++引用lib
    如果需要引用的是第三方的lib,没有把源码引入到工程中,则需要通过传统方式引用。1.在需要引用的项目上右键属性,在vc++目录中引用目录和引用库目录。引用目录是lib头文件的......
  • 【c&c++】结构 | 结构与函数 | C语言
                 ......
  • 【c&c++】C语言snprintf()函数用法
    一、函数原型snprintf(),为函数原型intsnprintf(char*str,size_tsize,constchar*format,...)。二、函数介绍将可变个参数(...)按照format格式化成字符串,然后将其......
  • c++17区域锁std::scoped_lock
    template<class...MutexTypes>classscoped_lock;(sincec++17)作用同时持有一个或多个Mutex的RAII机制的mutex包装器,可以一次性获取多个mutex,避免发生死锁。当......
  • 智能指针
    1、shared_ptr共享的智能指针1)shared_ptr使用引用计数,每一个shared_ptr的拷贝都指向相同的内存。在最后一个shared_ptr析构的时候,内存才会被释放。2)不能将一个原始指......
  • LeetCode接雨水(/dp 单调栈 双指针)
    原题解题目给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。约束题解解法一classSolution{public:inttra......
  • 常量
    常量常量(Constant):初始化(initialize)后不能再改变值!不会变动的值所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变final常量名=......
  • 指针
    指针一:求数组元素之和#include<stdio.h>#definesize10int exchange(int*start,int*end);intmain(void){inta[size]={1,2,3,4,5,6,7,8,9,10};lon......
  • 学习 C++第三天
    转义字符\?在书写连续多个问号时使用,防止他们被解析成三字母词\'用于表示字符常量\“用于表示一个字符串内部的双引号\\用于表示一个反斜杠,防止它被解释为一个转义序列......
  • C++11新特性
    C++语法movesemantics(移动语义)参考资料:这个网站的大部分资料对初学者都极其友好stanfordCS106Lmovesemanticshttps://www.youtube.com/watch?v=St0MNEU5b0o&......