首页 > 其他分享 >CDay07

CDay07

时间:2023-02-04 14:48:00浏览次数:36  
标签:CDay07 变量 指向 int 访问 地址 指针

指针基础

计算机的最小寻址单位:字节

变量的地址:变量第一个字节的地址

指针:简单来说指针就是地址

指针变量

指针变量:存放地址的变量,有时候也把指针变量称为指针

思考:指针变量只是存放变量的首地址,那怎么通过指针访问指针指向的对象?
答:声明时需要指明指针的基础类型(指针指向对象的类型),这样既知道了变量的首地址也知道了这个变量所占的内存大小,便可以访问此对象了。

int* p;
int 是指针的基础类型
*p 相当于变量 i 的别名,修改 *p 相当于修改 i

注意事项:
1、指针变量是 p ,不是 *p
2、指针变量类型是int*,而不是int

两个基本操作:&(取地址) 和 *(解引用)

例:

//取地址
int i = 1;
int *p;
p = &i;

解引用:通过指针访问指针指向的对象

通过 i 去访问:直接访问(访问一次内存)
通过 *p 去访问:间接访问(访问两次内存)

野指针问题

野指针:未初始化或指向未知区域的指针
例:

int *p1;
int *p2 = 0x7F;

对野指针进行解引用运算,会导致未定义的行为!

未定义的行为:程序可能崩溃也可能正常运行

指针变量的赋值

  • 通过取地址符赋值,p = &i
  • 通过另外一个指针赋值,p = q

注意事项:p = q 和 *p = *q 的区别
p = q:


*p = *q:


标签:CDay07,变量,指向,int,访问,地址,指针
From: https://www.cnblogs.com/MyXjil/p/17090266.html

相关文章