基础:第7章:指针

简介: 基础:第7章:指针

声明:

本笔记参考黑马程序员的C++课程:


详细笔记请看我的Notion


https://www.notion.so/7-a1859b1825894bfbba2a304be551e991

9d8551343c3e482091c7e4ea97e13524.png


考题:

1.指针的作用是什么?

2.结合图来理解内存空间以及指针变量

   1.内存空间

   2.指针变量

       1.解引用的操作?

       2.如何打印变量a的地址

       3.如何答应变量a的内存空间中的数据?

3.指针所占内存空间大小?

4.什么是空指针以及野指针?

   1.空指针的作用?

5.const修饰指针的三种情况?

6.指针与数组:

  1.数组名的作用?

7.值传递和地址传递的区别?


7 指针

7.1 指针的基本概念

指针的作用: 可以通过指针间接访问内存


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

▪可以利用指针变量保存地址


7.2 指针变量的定义和使用

▪个人总结:


指针的作用:可以通过指针间接访问内存


关键: 理解指针如何指向变量地址和内存空间


结合以下


写法:

//基础知识:
int a = 10;
int * p; //定义指针
p = &a; //指针指向变量a的地址
//可以直接缩写成:  int *p = &a;
cout << p << endl;
cout << &a << endl;
//以上是打印数据a的地址
//使用指针
//指针前加*代表 解引用 ,找到指针指向内存空间中的值
cout << *p << endl; 

指针变量定义语法: 数据类型 * 变量名;


示例:

int main() {
  //1、指针的定义
  int a = 10; //定义整型变量a
  //指针定义语法: 数据类型 * 变量名 ;
  int * p;
  //指针变量赋值
  p = &a; //指针指向变量a的地址
  cout << &a << endl; //打印数据a的地址
  cout << p << endl;  //打印指针变量p
    //0073F8BC
    //0073F8BC
  //2、指针的使用
  //通过*操作指针变量指向的内存
  cout << "*p = " << *p << endl;
    // *p = 10
  system("pause");
  return 0;
}

dc0c2ad5e2814a809801e933874961ee.png



指针变量和普通变量的区别:


▪普通变量存放的是数据,指针变量存放的是地址

▪指针变量可以通过" * "操作符,操作指针变量指向的内存空间,这个过程称为 解引用


总结1: 我们可以通过 & 符号 获取变量的地址(&称为取址符)

总结2:利用指针可以记录地址

总结3:对指针变量解引用,可以操作指针指向的内存


以上为我的Notion部分笔记


具体请看我的Notion,谢谢。

相关文章
|
19天前
|
存储 C语言
指针基础
指针基础
21 0
|
3月前
|
存储 算法 安全
C++一分钟之-数组与指针基础
【6月更文挑战第19天】在C++中,数组和指针是核心概念,数组是连续内存存储相同类型的数据,而指针是存储内存地址的变量。数组名等同于指向其首元素的常量指针。常见问题包括数组越界、尝试改变固定大小数组、不正确的指针算术以及忘记释放动态内存。使用动态分配和智能指针可避免这些问题。示例代码展示了安全访问和管理内存的方法,强调了实践的重要性。
40 3
|
4月前
|
存储 编译器 数据库
指针(1)--对于指针基本概念的介绍
指针(1)--对于指针基本概念的介绍
34 0
|
4月前
|
C语言
指针(7)---*和&的区别
指针(7)---*和&的区别
19 0
|
4月前
指针应用基础练习
指针应用基础练习
29 0
|
4月前
|
存储 C语言 索引
指针学习(特殊指针)
指针学习(特殊指针)
27 0
|
4月前
|
存储
地址和指针的概念
地址和指针的概念
50 1
|
10月前
|
C++
指针就该这么学->C指针进阶
指针就该这么学->C指针进阶
|
11月前
指针的基础
指针的基础
41 0