自学内容网 自学内容网

C++指针


前言

文章参考B站黑马程序员课程添加链接描述

一、指针是什么?

1、定义指针

int a =10;
int*p = &a;

2、使用指针

指针前加*代表解引用,找到指针指向内存中的数据

*p=1000;

二、指针常见用法

1、指针所占内存空间

指针也是数据类型,这种数据类型所占空间为多少呢?
32位系统占4个字节,64位系统占8个字节

sizeof(int*)
sizeof(p)

2、空指针

空指针:指针变量指向内存中编号为零的空间
用途:初始化指针变量
注意:空指针指向的内存是不可访问的;0-255的内存编号是系统占用的,所以不可访问

int*p =NULL

3、野指针

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

int*p = (int*)0x1100

4、const修饰指针

1、const修饰指针:常量指针

const int*p = &a

特点:指针的指向可以修改,但是指针指向的值不可以修改
2、指针常量

int * const p = &a

特点:指针的指向不可以修改,但是指针指向的值可以修改
3、const修饰指针也修饰常量

const int * const p = &a

特点:指针的指向不可以修改,但是指针指向的值可以修改

5 、指针和数组

作用:利用指针访问数组中元素

int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int*p = arr;      //arr就是数组首地址

6、指针和函数

作用:利用指针作函数参数,可以修改实参的值
如果地址传递可以修饰实参
在这里插入图片描述

7、结构体指针

作用:通过指针访问结构体中的成员
利用操作符->可以通过结构体指针访问结构体成员

struct student
{
string name;
int age;
};
int main()
struct student stu = {"张三",18};
struct student*p = &stu;
p->age = 20;

在这里插入图片描述

总结


原文地址:https://blog.csdn.net/qq_49973861/article/details/136338017

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!