从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. 【笔记】grafana v8.4.2 中如何设置曲线图的双坐标轴

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 这个话题当然很久就有人研究过了,只不过版本已经很老了,不适合新版本. 1 ...

  2. ClickHouse(22)ClickHouse集成HDFS表引擎详细解析

    HDFS 这个引擎提供了与Apache Hadoop生态系统的集成,允许通过ClickHouse管理HDFS上的数据.这个引擎提供了Hadoop的特定功能. 用法 ENGINE = HDFS(URI, ...

  3. Fabric网络升级(一)

    原文来自这里. 本章节主要介绍如何从之前的版本或其他长期支持版本升级至最新版. 从2.1升级到2.2 Fabric v2.1和v2.2都是稳定版,以bug修复和其它形式的代码加固位置.因此,升级不需要 ...

  4. Go - 基本数据类型和其字符串表示之间转换

    1. 基本数据类型和其字符串表示之间转换 基本类型的值,都有一个字符串表示,如数字类型值1 字符串表示为 "1",字符的编码为Unicode或者UTF-8,数字的编码是 int,底 ...

  5. .net Core IsDefined、GetValues、HasFlag 使用

    IsDefined可以用于判断传入的单个值是否属于该枚举 GetValues检索指定枚举中常量值的数组 HasFlag 可以用于判断传入的多个值是否属于该枚举 先来个例子: public enum B ...

  6. 6.7 Windows驱动开发:内核枚举LoadImage映像回调

    在笔者之前的文章<内核特征码搜索函数封装>中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核LoadImage映像回调,在Win64环境下我们可以设置一个LoadI ...

  7. C/C++ 反汇编:多维数组与指针

    反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高级语言代码都有相当大的帮助, ...

  8. Yarp 与 Nginx性能大比拼不出所料它胜利了!

    Yarp 与 Nginx 性能大比拼 测试环境: Ubuntu 22.04.3 LTS (GNU/Linux 6.5.0-14-generic x86_64) Intel(R) Xeon(R) CPU ...

  9. CF1706E Qpwoeirut and Vertices 题解

    题目链接:CF 或者 洛谷 官解看上去挺智慧的,来点朴素的解法.我们来当做纯 ds 题去做.首先明确一点,图中若干个点关于最早连通性的这个问题可以考虑 \(MST\),我们有一类东西叫 \(krusk ...

  10. 【奶奶看了也不会】微信群聊(微信客服)接入ChatGPT教程

    1.聊天效果展示 大家好,我是小卷.最近工作变卷了,都已经一个月没更新文章了.今天来教教大家怎么给微信群聊的智能客服接入ChatGPT.和之前企业微信机器人不同的是,这次是可以外部微信群使用的.用的人 ...