返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++指针学习详解
  • 844
分享到

C++指针学习详解

2024-04-02 19:04:59 844人浏览 八月长安
摘要

目录指针的基本概念一、指针变量的定义和使用二、指针所占的空间内存1.空指针 野指针2. const修饰指针利用指针访问数组中的每个元素.总结指针的基本概念 指针的作用:可以通过指针间

指针的基本概念

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

  • 内存的编号从0开始记录,一般使用十六进制数字表示。
  • 可以使用指针变量保存地址
  • 指针=地址(简单理解)

一、指针变量的定义和使用

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


#include<iOStream>
using namespace std;
int main()//主函数
{//定义指针  :数据类型*变量名
	int a = 10;
	//使用指针
	int* p;//创建指针
	p = &a;//&取址符
	cout << "a的地址为:" << &a << endl;
	cout << "指针P为:" << p << endl;
	//使用指针
	//可以通过解引用 的方式 来找到 指针指向的内存
	//指针前  加*代表 解引用,找到指针指向的内存中的数据
	*p = 1000;
	cout << "a=" << a << endl;
	cout << "*p=" << *p << endl;
	system("pause");
	return 0;
}

二、指针所占的空间内存

编译环境行x64为 64位下 占8个字节

编译环境行x86为 32位 则占4个字节

计算指针p所占的内存:


#include<iostream>
using namespace std;
int main()//主函数
{//定义指针  :数据类型*变量名
	int a = 10;
	//int* p;//创建指针
	//p = &a;//&取址符
	int* p = &a;
	cout << "int* p的内存为:" << sizeof(int* )<< endl;
	cout << "int* p的内存为:" << sizeof(float*) << endl;
	cout << "int* p的内存为:" << sizeof(double *) << endl;
	cout << "int* p的内存为:" << sizeof(char*) << endl;
	system("pause");
	return 0;
}

1.空指针 野指针

空指针:指向编号为0的空间

用途:初始化指针

2. const修饰指针

三种指针

1.const 修饰指针 常量指针

指针的指向的值不可以修改,

指针的指向可以修改。

int a=10;

int b=0;

int *p=&a;

例如:*p=20;错误,指针的指向的值不可以修改

int const *p=&b;对

2.指针常量

int * const p;

指针常量;

指针的指向不可以修改

指针的值可以修改;

3.const既可以修饰指针,又修饰常量

const int *const p=&a;

利用指针访问数组中的每个元素.


#include<iostream>
using namespace std;
int main()//主函数
{
	//利用指针访问数组的元素
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};
	cout << "输出数组第一个元素" << arr[0]<<endl;
   int* p = arr;//arr就是数组的首地址
   cout << "利用指针访问第一个元素:" << *p << endl;
   p++;//让指针向后偏移4个字节
   cout << "利用指针访问第二个元素:" << *p << endl;
   //解引用
   cout << "利用指针遍历数组:"  << endl;
   int* p2 = arr;
   for (int i = 0;i < 10; i++)
   {
	   //cout << arr[i] << endl;
	   cout << *p2 << endl;
	   p2++;
   }
	system("pause");
	return 0;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: C++指针学习详解

本文链接: https://lsjlt.com/news/136150.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++指针学习详解
    目录指针的基本概念一、指针变量的定义和使用二、指针所占的空间内存1.空指针 野指针2. const修饰指针利用指针访问数组中的每个元素.总结指针的基本概念 指针的作用:可以通过指针间...
    99+
    2024-04-02
  • C++学习之指针的使用详解
    C++中指针储存一个地址 声明: datatype* p;  datatype表示指针指向的数据类型。 int num=0; int* pnum=&num; //&...
    99+
    2023-03-02
    C++指针使用 C++指针
  • 详解C语言学习记录之指针
    目录1指针是什么2指针和指针类型3野指针(1)三种情况(2)如何规避野指针4指针运算5指针和数组6字符指针7数组指针8指针数组9其他总结1指针是什么 指针是汇编语言中的一个对象,利用...
    99+
    2024-04-02
  • C语言学习之指针的使用详解
    目录一、指针概念1.指针变量2.指针类型3.二级指针二、野指针1.野指针成因2.规避野指针三、指针运算1.指针±整数2.指针-指针3.指针关系运算四、指针数组1.指针和...
    99+
    2022-11-13
    C语言指针使用 C语言指针
  • C++学习之移动语义与智能指针详解
    目录移动语义 1.几个基本概念的理解 2.移动构造函数 3.移动赋值函数 4.std::move函数 5.面试题,关于实现String 资源管理和智能指针 一、C语言中的问题 二、C...
    99+
    2024-04-02
  • Go语言基础学习之指针详解
    目录1. 什么是指针2. 指针地址 & 指针类型3. 指针取值4. 空指针5. make6. new7. make 和 new 的区别8. 问题今天来说说 Go 语言基础中的...
    99+
    2022-12-30
    Go语言指针使用 Go语言指针 Go 指针
  • C++指针与数组:指针详解
    目录一. What(什么是指针)1. 地址初了解2. 指针概念3. 指针与指针变量二. Why(为什么要有指针)三. How(如何使用指针)1. 基本定义2. 取地址操作符 &...
    99+
    2024-04-02
  • C语言进阶学习之指针
    目录1.指针概念回顾2.字符指针3.数组指针和指针数组3.1数组指针的含义3.2&数组名vs数组名3.3数组指针4.数组传参和指针传参4.1一维数组传参4.2二维数组传参4....
    99+
    2024-04-02
  • Go语言学习之指针的用法详解
    目录引言一、定义结构体1. 语法格式2. 示例二、访问结构体成员三、结构体作为函数参数四、结构体指针总结引言 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义...
    99+
    2024-04-02
  • C语言指针详解之野指针
    目录指针是什么?怎么表示?什么是指针变量?指针类型又是什么?指针类型存在的意义野指针是什么?野指针产生的原因一、 指针未初始化二、 指针越界访问如何避免野指针(野狗)的出现呢?指针运...
    99+
    2024-04-02
  • C++学习笔记之类成员指针
    C++的类成员指针是一种奇葩的指针。 假设现在我们要表示一个三维的点,现在有两种定义方式: struct point1{ int x, y, z; }; struct point...
    99+
    2024-04-02
  • C语言指针详解
    目录前言:复杂类型说明一、细说指针1.指针的类型2.指针所指向的类型3.指针的值----或者叫指针所指向的内存区或地址4 指针本身所占据的内存区二、指针的算术运算三、运算符&...
    99+
    2024-04-02
  • C++函数指针详解
    函数指针基础: 1. 获取函数的地址 2. 声明一个函数指针 3.使用函数指针来调用函数 获取函数指针: 函...
    99+
    2024-04-02
  • C语言学习之指针知识总结
    目录一、地址二、指针与指针变量三、指针的作用四、初学指针时常见的错误五、通过调用函数修改主调函数中的值六、指针与一维数组七、使用函数操作一维数组八、指针变量所占字节数九、静态数组的缺...
    99+
    2024-04-02
  • C语言的空类型指针,空指针,野指针详解
    目录空类型指针-void*空指针-NULL野指针造成野指针的原因1.指针未初始化2.指针越界访问3.指针指向的空间已经释放避免野指针总结空类型指针-void* void是空类型,vo...
    99+
    2024-04-02
  • Go语言学习教程之指针的示例详解
    目录前言练习1练习2练习3前言 关于指针的主要几点: 指针类型:一个指针类型*T表示指向给定类型的变量的所有指针的集合,该给定类型T称为基本类型。未初始化的指针的值是nil。变量:一...
    99+
    2024-04-02
  • C++常量指针,指针常量,指向常量的常指针详解
    目录什么是指针内存地址指针所占内存const 变量指针常量,常量指针和指向常量的指针指针常量常量指针指向常量的常指针空指针、野指针总结什么是指针 指针就是指向变量在内存中的地址 数据...
    99+
    2024-04-02
  • C++SmartPointer智能指针详解
    目录一、为啥使用智能指针呢二、shared_ptr智能指针三、unique_ptr智能指针四、weak_ptr智能指针五、智能指针怎么解决交叉引用,造成的内存泄漏5.1 交叉引用的栗...
    99+
    2024-04-02
  • 【C++】智能指针(RAII)详解
        我们在上篇文章中(异常处理详解)提到了 RAII 。那么本篇文章会对此进行详解。重点是智能指针的详解。其中会讲解到 RAII 思想、auto_ptr、unique_ptr、shared_ptr、weak_ptr、循环引用问题。希...
    99+
    2023-09-06
    c++ 开发语言
  • 从头学习C语言之指针和数组
    目录指针和数组:示例:总结指针和数组: 数组名其实是数组第一个元素的地址。 %p用来打印地址,为十六进制 &:取址操作符 如果用一个指针指向数组,应该怎么做呢? char ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作