从b站上黑马程序员的c++课里学到的C++之指针变量的定义和使用

指针变量的定义和使用

简单理解指针就是地址。

内存编号是从0开始记录的,一般用16进制数字表示

 1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 int a = 10; //定义整型变量a
7
8 //1,指针的定义语法:数据类型 * 变量名;
9 int* p;
10
11 p = &a; //建立指针和变量的关系,让指针记录变量a的地址
12 cout << "a的地址为:" << &a << endl;
13 cout << "指针p为:" << p << endl;
14
15 //2,指针的使用
16 //可以通过解引用的方式来找到指针指向的内存
17 //指针前加 * 代表解引用,找到指针指向的内存中的数据
18 *p = 1000;
19 cout << "a = " << a << endl;
20 cout << "*p = " << *p << endl;
21
22 return 0;
23 }

运行结果显示:

指针所占的内存空间

在32位操作系统下:占用4个字节空间,64位下占用8个字节。

生成----配置管理器----平台,可以更改编译器的环境

 1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 int a = 10;
7 int* p = &a;
8 cout << "sizeof (int *) = " << sizeof(p) << endl;
9 cout << "sizeof (int *) = " << sizeof(int *) << endl;
10 cout << "sizeof (float *) = " << sizeof(float *) << endl;
11 cout << "sizeof (double *) = " << sizeof(double *) << endl;
12 cout << "sizeof (char *) = " << sizeof(char *) << endl;
13
14 return 0;
15 }

 运行结果显示:

熟记:在32位操作系统下,指针是占4个字节空间大小,不管是什么数据类型;在64位操作系统下,指针是占8个字节空间大小,不管是什么数据类型。

空指针和野指针

空指针:指针变量指向内存中编号为0的空间

用途:初始化指针变量

注意:空指针指向的内存是不可以访问的

 野指针:指针变量指向非法的内存空间

在程序中。尽量避免出现野指针

总结:空指针和野指针都不是我们申请的空间,因此不要访问。

const 修饰指针

1,const修饰指针:常量指针,const int * p = &a;

特点:指针的指向可以修改,但是指针指向的值不可以改。指针的指向可以指向这个内存单元,也可以更改,指向另一个内存单元。指针指向的值是指针指向的内存单元里存放的数据不可以改。

2,const修饰常量:指针常量,int * const p = &a;

特点:指针的指向不可以改,指针指向的值可以改。

3,const既修饰指针,又修饰常量,const int * const p = &a;

C++之指针变量的定义和使用的更多相关文章

  1. 【C语言入门教程】4.5 指针变量的定义与引用

    指针变量是包含内存地址的变量.一般的变量直接包含一个特定的值,而指针变量包含的是某一特定数据类型的内存地址.普通变量直接引用其中的值,指针变量则间接引用所指向内存地址中的值.指针变量在使用前需要声明与 ...

  2. C语言定义一个指针变量

    10.2.1 定义一个指针变量 对指针变量的定义包括三个内容: (1) 指针类型说明,即定义变量为一个指针变量: (2) 指针变量名: (3) 变量值(指针)所指向的变量的数据类型. 其一般形式为: ...

  3. C语言的指针变量

    C语言的指针变量 在C语言中,变量是固定范围的存储空间,它存储的是赋给他的值, 比如: ; /* 这里是定义一个整型变量a,并把12这个值存储在a的地址空间上 这个地址空间是系统随机分配的,对用户是透 ...

  4. C语言---指针变量详解1

    数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量.在C语言中,允许用一个变量来存放指针,这种变量称为指针变量.指针变量的值就是某份数据的地址,这样的一份数据可以是数 ...

  5. c++学习6 指针变量

    一 指针变量的定义 *是用来修饰指针变量的,通常情况下我们定义的手法都是"类型名"+"*"+"指针变量名称". 有一种简单无脑的" ...

  6. 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)

    一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...

  7. DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?

    DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?比如我定义个变量 var p:Pchar;如果这个变量声明为全局变量,需要分配内存吗?分配为局部变量,需要分为内存吗?为什么 ...

  8. oracle函数、包、变量的定义和使用、重点”结构体和数组”

    函数 实例1:输入雇员的姓名,返回该雇员的年薪 create function fun1(spName varchar2) ,); begin +nvl(comm,) into yearSal fro ...

  9. c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量

    一.内存 /* 内存: 存在内存里的. 内存分了N多个小空间,每个小空间1个字节 每个小空间有它自己的地址.每个地址之间差1 int类型占用4个字节,等于占了4个空间(有4个地址),不需要记住4个地址 ...

  10. C语言函数指针变量和指针函数以及指针数组

    C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址.我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数.然后通过指针变量就可以找到并调用这 ...

随机推荐

  1. 深入浅出RPC服务 | 不同层的网络协议

    导读: 本系列文章从RPC产生的历史背景开始讲解,涉及RPC核心原理.RPC实现.JSF的实现等,通过图文类比的方式剖析它的内部世界,让大家对RPC的设计思想有一个宏观的认识. 作者:王禹展   京东 ...

  2. js解析上传APK文件的详细信息

    前端解析APK版本信息 需要安装这个包,可以使用cnpm或者npm npm 安装 app-info-parser ( 命令:npm install app-info-parser) APKInfo为i ...

  3. 【笔记】学到几个 golang 代码小技巧

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 从这篇文章学到:10个令人惊叹的Go语言技巧,让你的代码更 ...

  4. 【Java】ArrayList线程不安全的坑

    问题复现: 使用Java的steam().paralleStream(),foreach()方法向ArrayList添加数据,导致ArrayList中出现空值,代码如下: public static ...

  5. 监控Celery不一定非要使用Flower

    运维平台中有许多的周期/定时/异步任务,例如证书扫描.数据备份.日志清理.线上作业等等,这些任务的执行都是借助于Celery来完成的.任务多了之后就会遇到一系列的问题,例如我之前写过的将任务分多队列来 ...

  6. 使用Miniconda安装R语言环境

    使用Miniconda安装R语言 下载Miniconda3-latest-Linux-x86_64.sh 静默安装 sh Miniconda3-latest-Linux-x86_64.sh -b -p ...

  7. CF452F Permutation 与 P2757 [国家集训队] 等差子序列 题解

    两道基本一样的题: 题目链接: P2757 [国家集训队] 等差子序列 Permutation 链接:CF 或者 洛谷 等差子序列那题其实就是长度不小于 \(3\) 的等差数列是否存在,我们考虑等于 ...

  8. [Elasticsearch] Elasticsearch 启动访问报错问题

    Elasticsearch 启动访问报错问题 产生的问题与解决方案 环境:Windows 10 ES 版本:8.12.0 现象: 双击 elasticsearch.bat 文件启动后,访问 http: ...

  9. JS 可选链操作符?. 空值合并运算符?? 详解,更精简的安全取值与默认值设置小技巧

    壹 ❀ 引 说来也比较惭愧,可选链操作符?.在公司项目中使用特别频繁,而我在之前一直以为是类似奇技淫巧的写法,所以也没去查阅相关文档,直到在学习typescript时碰巧看到了可选链操作符与空值合并操 ...

  10. 从零开始的react入门教程(九),react context上下文详解,可能有点啰嗦,但很想让你懂

    壹 ❀ 引 我在从零开始的react入门教程(八),redux起源与基础用法一文中,介绍了redux的前辈Flux,以及redux关于单项数据更新的基本用法.我们在前文提到,相对Flux支持多个sto ...