C,C++——指针详解

目录

1.指针的基本概念 

代码示例:

2.指针所占内存空间 

代码示例:

3.空指针和野指针 

代码示例:

4.const修饰指针 

代码示例:

5.指针和数组 

代码示例:

6.指针和函数 

代码示例:

7.指针,数组,函数 练习

代码示例:


1.指针的基本概念 

24474044ffb74846bd2686a41bde69e7.png

642f0f98f8c149188a6c7e5016d4d3d2.png

代码示例:

#include<bits/stdc++.h>
using namespace std;int main()
{int a = 10;int *p;p = &a;cout << &a << endl;cout << p << endl;cout << "*p = " << *p << endl;return 0;
}

2.指针所占内存空间 

643085580d444868aa1bdf42f3b7ff5d.png

1188d4f4b71d4a3aab5ce387fde5f597.png

代码示例:

#include<bits/stdc++.h>
using namespace std;int main()
{//在32位操作系统下,指针占4个字节空间大小,无论是什么数据类型//在64位操作系统下,指针占8个字节空间大小,无论是什么数据类型cout << sizeof(int *) << endl;cout << sizeof(double *) << endl;cout << sizeof(float *) << endl;cout << sizeof(char *) << endl;return 0;
}

3.空指针和野指针 

092b1e0176fa43358aff8ee742879a57.png

9191b7dfb8a34800903315aa0672f34c.png

代码示例:

#include<bits/stdc++.h>
using namespace std;int main()
{
//空指针用于给指针变量初始化,并且空指针指向的内存不可以被访问int *p = NULL;*p = 100;//在程序中,尽量避免出现野指针int *p1 = (int *)0x1100;cout << *p1 << endl;return 0;
}

61a2922acbf94f1c9f082e093f988e94.png

4.const修饰指针 

f8c891f12d56414cab21533f563c0ddc.png

3737ef491e6041b48d9479abf8c1e9dc.png

b7998de26eec4912b5482749a2e9df89.png

4e4ea326515b4f0ba0a68dfc0160272a.png

代码示例:

#include<bits/stdc++.h>
using namespace std;int main()
{int a = 10;int b = 10;//第一种,常量指针const int *p1 = &a;//指针指向的值不可以修改,指针的指向可以修改//*p1 = 20//错误p1 = &b;//正确//第二种,指针常量int *const p2 = &a;//指针指向的值可以修改,指针的指向不能修改*p2 = 20;//正确//*p2 = &b//错误//第三种,const修饰指针和常量const int * const p3 = &a;//指针指向的值和指针的指向都不能修改//*p3 = 20;//错误//p3 = &b;//错误return 0;
}

74e7e2bc09c14c08a44553316ece7fa4.png

5.指针和数组 

e8d4537ac0824a33b44ba53aa87a7359.png

代码示例:

#include<bits/stdc++.h>
using namespace std;int main()
{int arr[] = {1,3,7,5,4,2,9,0};int *p = arr;cout << *p << endl;p++;cout << *p << endl;return 0;
}

6.指针和函数 

2df845fbfcce4df2b6caa890ca24f772.png

386c7e9679724b83b1099b1e9b94dee0.png

代码示例:

#include<bits/stdc++.h>
using namespace std;void swap(int *a,int *b)
{int temp = *a;*a = *b;*b = temp;
}int main()
{int a = 10;int b = 20;cout << "交换前a的值为:" << a << endl;cout << "交换前b的值为:" << b << endl;swap(&a,&b);cout << "交换后a的值为:" << a << endl;cout << "交换后b的值为:" << b << endl;
}

 

90622b384f874ff282b7b3ffd71aec67.png

7.指针,数组,函数 练习

d4d20ce7f1b2415bbcc440c9e23cb35f.png

代码示例:

#include<bits/stdc++.h>
using namespace std;void bubblesort(int *arr,int len)
{for(int i = 0; i < len - 1; i++){for(int j = 0; j < len - i - 1; j++){if(arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}int main()
{int arr[10] = {5,6,3,2,9,1,0,7,4,9};int len = sizeof(arr)/sizeof(arr[0]);bubblesort(arr,len);for(int i = 0; i < 10; i++){cout << arr[i] << ' ';}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/294459.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++面向对象:C++的垃圾回收

垃圾收集是编程语言中 使用的内存管理技术之一。 它是一种自动内存管理技术&#xff0c;作为许多编程语言的功能添加。垃圾收集器收集或回收分配给变量或对象但不再被程序使用的内存&#xff1b; 这也称为垃圾。 三种基本的垃圾收集算法及其改进算法 1、引用计数算法 引用技…

【算法刷题day10】Leetcode:232.用栈实现队列、225. 用队列实现栈

文章目录 Leetcode 232.用栈实现队列解题思路代码总结 Leetcode 225. 用队列实现栈解题思路代码总结 stack、queue和deque对比 草稿图网站 java的Deque Leetcode 232.用栈实现队列 题目&#xff1a;232.用栈实现队列 解析&#xff1a;代码随想录解析 解题思路 一个栈负责进&a…

Kafka入门到实战-第二弹

Kafka入门到实战 Kafka快速开始官网地址Kafka概述Kafka术语Kafka初体验更新计划 Kafka快速开始 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件流…

谷粒商城——通过接口幂等性防止重复提交订单

如果用户向后端服务提交多次相同订单的提交服务&#xff0c;那么后端应该只生成一条订单记录。 有一些操作天然是幂等的&#xff0c;如查询操作和删除操作等。 幂等性实现 1.token机制&#xff08;仅这个方法适用于订单的重复提交&#xff09; 后端先生成1个令牌将其记录在R…

UE4_动画基础_ 瞄准偏移1D(Aim Offset Blend Space 1D)

瞄准偏移1D基本上可以完成角色的向左看向右看或者向上看向下看&#xff0c;像混合空间1D一样只有一个轴向可用。 操作步骤&#xff1a; 1、新建第三人称模板项目。 2、右键——动画——瞄准偏移1D 选取骨骼 双击打开 3、瞄准偏移混合的是姿势&#xff0c;我们需要创建姿势。 …

网络以太网之(1)基础概念

网络以太网之(1)基础概念 Author: Once Day Date: 2024年4月1日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的…

【python plotly库介绍】从视觉到洞见:桑基图在业务分析中的应用【保姆级教程过于详细珍藏版】

&#x1f464;作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 本文结构&#xff1a;工具介绍python实现库 - 案例 - 分析思路与过程 实战专栏&#xff1a;https://blog.csdn.net/cciehl/category_12615648.html 备注说明&#xff1a; 企业…

2.java openCV4.x 入门-hello OpenCV

专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天建议把本文当作笔记来看&#xff0c;据说专栏目录里面有相应视频&#x1f92b; &#x1f9ed;文…

Web日志/招聘网站/电商大数据项目样例【实时/离线】

Web服务器日志分析项目 业务分析 业务背景 ​ 某大型电商公司&#xff0c;产生原始数据日志某小时达4千五万条&#xff0c;一天日志量月4亿两千万条。 主机规划 &#xff08;可略&#xff09;日志格式&#xff1a; 2017-06-1900:26:36101.200.190.54 GET /sys/ashx/ConfigH…

【Linux】自定义协议+序列化+反序列化

自定义协议序列化反序列化 1.再谈 "协议"2.Cal TCP服务端2.Cal TCP客户端4.Json 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.再谈 “协议” 协议是一种 “约定”。在前面我们说过父亲和儿子约定打电话的例子&#xff0c;不过这是感性的认识&a…

Windows提权—数据库提权-mysql提权mssql提权Oracle数据库提权

目录 Windows 提权—数据库提权一、mysql提权1.1 udf提权1.1.2 操作方法一 、MSF自动化--UDF提权--漏洞利用1.1.3 操作方法二、 手工导出sqlmap中的dll1.1.4 操作方法三、 moon.php大马利用 1.2 mof提权1.3 启动项提权1.4 反弹shell 二、MSSQL提权MSSQL提权方法1.使用xp_cmdshe…

【MATLAB源码-第21期】基于matlab的BCH码编码译码仿真,调制使用QPSK,对比编码与未编码的误码率曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 QPSK调制解调&#xff1a;QPSK&#xff08;Quadrature Phase Shift Keying&#xff09;调制解调**是一种数字调制技术&#xff0c;通常用于数字通信系统。 调制&#xff1a; 1. 首先&#xff0c;将数字信号分成两路&#xff…

nodejs基础学习(一)

nodejs逆向python爬虫学习笔记 第一章 nodejs基础 nodejs基础 nodejs逆向python爬虫学习笔记开发环境vscodeF5运行注释js逆向作用变量**1、var全局**2、let块级作用域&#xff1a; {} if while for。。。等等循环中使用3、const 块级作用域&#xff0c;常量,不可以修改/重新定…

MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记

以前微处理器&#xff08;MPU&#xff09;与微控制器&#xff08;MCU&#xff09;是截然不同的两种设备&#xff0c;MPU支持丰富的软件系统&#xff0c;如Linux和相关的软件堆栈&#xff0c;而MCU通常将专注于裸机和RTOS。近年来&#xff0c;随着MCU的性能越来越高&#xff0c;…

【A-006】基于SSH的新闻发布系统(含论文)

【A-006】基于SSH的新闻发布系统&#xff08;含论文&#xff09; 开发环境&#xff1a; Jdk7(8)Tomcat7(8)MySQLIntelliJ IDEA(Eclipse) 数据库&#xff1a; MySQL 技术&#xff1a; SpringStruts2HiberanteJSPJquery 适用于&#xff1a; 课程设计&#xff0c;毕业设计&…

一键切换ip地址软件的功能和优势

随着网络技术的不断发展和普及&#xff0c;IP地址已经成为我们在互联网上活动的重要标识。然而&#xff0c;在某些特定情况下&#xff0c;我们可能需要频繁地切换IP地址&#xff0c;以满足不同的网络需求或保护个人隐私。一键切换IP地址的软件应运而生&#xff0c;为我们提供了…

Vue-05

v-model 应用于其他表单元素 常见的表单元素都可以用v-model绑定关联 → 快速获取或设置表单元素的值 它会根据控件类型自动选取正确的方法来更新元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name…

红杉资本:2024年关于AI的4大预测

四大预测 预测一&#xff1a;Copilot 将逐渐向 AI Agent 转变。 2024 年&#xff0c;AI 将从辅助人类的 Copilot 转变为真正能替代一些人类工作的Agent。AI 将更像是一个同事&#xff0c;而不仅仅是一个工具&#xff0c;这点在软件工程、客服等行业已经初步显现。 预测二&…

2024年04月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名&#xff08;每月更新&#xff09; 2024年04月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多&#xff0c;人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…

喜讯!全视通获评“医用气体行业优秀装备制造企业”称号

春意盎然&#xff0c;“渝”您相见。3月28日&#xff0c;“2024中国医学装备大会暨展览会”在重庆隆重启幕&#xff0c;本次展览会是我国医学装备领域政府部门、相关专家、头部企业深度参与的综合性展会&#xff0c;是先进技术最权威的展示平台之一&#xff0c;是引领创新发展的…