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放在*的前面

【快速学】指针是什么?指针常量、常量指针是什么?(C++)的更多相关文章

  1. c/c++ 函数、常量、指针和数组的关系梳理

    压力才有动力,15年中旬就要准备实习,学习复习学习复习学习复习学习复习……无限循环中,好记性不如烂笔头……从数组开始,为主干. c 的array由一系列的类型相同的元素构成,数组声明包括数组元素个数和 ...

  2. C语言常量与指针

    C语言功能强大而丰富,还表现在const与指针的结合使用上,对不同的问题,它提供不同的保护,特别有用的是指向常量的指针 本文地址:http://www.cnblogs.com/archimedes/p ...

  3. 常量指针(const X*)和指针常量(X* const)

    const X* 类型的指针(指向常量的指针),此指针的地址是一个变量,是可以修改的:但其所指向的内容是常量,是不可以修改的. 例如: 1: char name[5] = "lisi&quo ...

  4. C++指向常量的指针和常指针

    C++指向常量的指针和常指针 指向常量的指针 通常情况下,可以通过指针去修改指针指向的内容.但是在某些情况下,只希望通过指针去访问指针指向的内容,不想修改.比如只想通过树根结点的指针去遍历输出树中所有 ...

  5. 【转】const int *p和int * const p的区别(常量指针与指向常量的指针)

    [转]作者:xwdreamer   出处:http://www.cnblogs.com/xwdreamer 对于指针和常量,有以下三种形式都是正确的: const char * myPtr = &am ...

  6. C和C指针小记(六)-基本声明、指针声明、typedef 、常量、作用域、链接属性、存储类型、static

    1.变量的声明 声明变量的基本形式: 说明符号(一个或者多个) 声明表达式列表 说明符 (specifier) 包含一些关键字,用于描述被声明的标识符的基本类型,它也可用户改变标识符的缺省存储类型和作 ...

  7. 常量指针-指向常量的指针,指针常量-指针本身是常量,常量-不能更改值的常量,数组指针-是指针int (*p)[n] 指针数组-是数组int *p[n]

    1.常量指针 定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针. 声明:const int * p; int const * p; 注:可以将一个常 ...

  8. const指针和指向常量的指针

    先看下面六种写法: . const int p; . const int *p; . int const* p; . int * const p; . const int * const p; . i ...

  9. C 指针常量 和常量指针 指向常量的指针常量的使用

    #include <stdio.h> /* 指针常量 和常量指针 指向常量的指针常量 */ int main() { int a = 100; int b =200; int* const ...

  10. 指针常量&常量指针&指向常量的指针常量

    搞不懂不吃晚饭 (1)指针常量 指针常量是一个常量,但是是指针修饰的. 格式:int * const p; 例如 int a, b; int * const p = &a;//指针常量 //分 ...

随机推荐

  1. uni-app (uView) select下拉框添加模糊搜索

    先看效果: 因为uniapp内置的下拉查询是没有输入模糊搜索的,有的列表选项过多时还是需要这个搜索功能,所以只能自己筛选 (前台.后台两种方法). 下面是代码: <template> &l ...

  2. windows下gitlab-ci.yml配置进入某一目录找不到,无权限

    打开任务管理器查看gitlab-runner所使用的的用户 更改gitlab-runner服务权限, 找到gitlab-runner服务,右键-属性-登陆,选择[此账户]点击[浏览] 选择具有权限的账 ...

  3. npm 局部安装 jbrowse

    #此处不要加 -g参数 , -g 是全局安装 npm install @jbrowse/cli #用npx 才能使用这个包,无法按照官方文档直接使用 npx jbrowse --version

  4. Prometheus 特点

    1.1 Prometheus的特点 Prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算.统一分析和告警的新模型. 相比于传统 ...

  5. mysql函数实现oracle的序列

    1.创建一张伪序列表 CREATE TABLE sequence ( seq_name VARCHAR (50) NOT NULL,-- 序列名称 current_val INT NOT NULL,- ...

  6. 网络爬虫Python(一)

    1.爬取页面,打印页面信息 1 import requests 2 3 # get请求 4 response_get=requests.get("https://www.baidu.com& ...

  7. vxWidgets(二):接口文档

    第一章 介绍 在这一章中,我们会回答这样一些基本的问题:wxWidgets是什么,它和别的类似的开发库有什么不同.我们还会大概说一下这个项目的历史,以及wxWidgets社区的工作,它采用的许可协议, ...

  8. ENGG1310 Electricity and electronics P1.3 Electromagnetic

    课程内容笔记,自用,不涉及任何 assignment,exam 答案 Notes for self-use, do not include any assignments or exams 这一节主要 ...

  9. [iOS] iPhone,开发工具的一些杂项

    1.在safari的开发菜单里一直不显示我当前的iPhone,后来机缘巧合在 设置- 开发者 - Clear Trusted Computers ,重新信任电脑之后,就OK了(️)

  10. dockerfile 打包镜像

    打包镜像指令 docke人 build -t xxx -f dockerfile2 . xxx 镜像名称 -f 指定dockerfile2 文件 (多个文件的话) . 当前的上下文空间 dockerf ...