当前位置: 首页 > news >正文

(C语言)指针的进阶

1.指针就是个变量,用来存放地址,地址唯一标识一块内存空间。
2.指针的大小是固定的4/8个字节(32位平台/64位平台)。
3.指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。
4.指针的运算。

一、关于两个数组和指针是否相等的问题;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>int main()
{//初始化变量值;//初始化指针;const char* p1 = "abcdef";const char* p2 = "abcdef";//初始化数组;char arr1[] = "abcdef";char arr2[] = "abcdef";//判断比较指针是否相等结果结果;if (p1 == p2){//打印结果;printf("p1 == p2\n");}else{//打印结果;printf("p1 != p2\n");}//结果为:p1 == p2;//原因:因为*p1和*p2在存储时存储的是字符串首字母的地址,p1和p2的首字母都是a,a的地址是一样的;//所以说p1 == p2;//判断数组是否相等结果;if (arr1 == arr2){//打印结果;printf("arr1 == arr2\n");}else{//打印结果;printf("arr1 != arr2\n");}//结果为: arr1 != arr2;//原因:因为arr1和arr2属于两个不同的数组,会在内存中开辟不同的空间;//所以这两个字符串数组即使内容一样,但是也不会相等;return 0;
}

二、指针数组;

指针数组是数组,是用来存放指针的数组;

int arr[10] //整型数组;

char arr[5] //字符数组;

int* arr[10] //存放整型指针的数组;

char* arr[5] //存放字符指针的数组;

三、用一维数组实现二维数组;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>int main()
{//初始化变量值;int arr1[] = { 1, 2, 3, 4, 5 };int arr2[] = { 2, 3, 4, 5, 6 };int arr3[] = { 3, 4, 5, 6, 7 };//初始化指针变量值;int* parr[] = { arr1, arr2, arr3 };//打印数组;int i = 0;int j = 0;//循环打印;for (i = 0; i < 3; i++){//内层循环;for (j = 0; j < 5; j++){//打印结果;// printf("%d", *(parr[i] + j));//*(p + i) ---> p[i]printf("%d", parr[i][j]);}//每个数组循环完成后换行;printf("\n");}return 0;
}

四、数组指针;

数组名通常表示的都是数组首元素的地址
但是有2个例外:
1.s1zeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小单位是字节
2.&数组名,这里的数组名表示的依然是整个数组,所以&数组名取出的是整个数组的地址 

相关文章:

(C语言)指针的进阶

1.指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2.指针的大小是固定的4/8个字节(32位平台/64位平台)。 3.指针是有类型&#xff0c;指针的类型决定了指针的-整数的步长&#xff0c;指针解引用操作的时候的权限。 4.指针的运算。 一、关于两…...

【网络面试(5)】收发数据及断开服务器(四次挥手)

前面了解到服务器和客户端在创建套接字&#xff0c;建立连接后&#xff0c;就可以进入到下一步&#xff0c;双发可以互相发送和接收数据&#xff0c;本篇博客就来学习一下这个过程。  我们印象里&#xff0c;发送数据应该是我们在浏览器输入网址&#xff0c;敲击回车的一瞬间&…...

【Maven】下载及配置

文章目录 1. 定义2. 下载3. 解压4. 配置环境变量5. 验证6. 特性 1. 定义 Maven 是一个跨平台的项目管理工具。作为 Apache 组织的一个颇为成功的开源项目&#xff0c;其主要服务于基于 Java 平台的项目创建&#xff0c;依赖管理和项目信息管理&#xff0c;是一个自动化构建工具…...

【方法】PPT设置密码后如何修改?

PowerPoint是我们日常和工作中经常用到的办公软件&#xff0c;有时候为了保护文件&#xff0c;还会设置密码&#xff0c;那设置密码后又想要修改密码&#xff0c;怎么操作呢&#xff1f;下面来看看PPT常用的两种密码是如何修改的。 1. “打开密码” 想要修改PPT的“打开密码”…...

第34期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大型语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以…...

2023新版edge浏览器页面加载不出来的解决办法

2023新版edge浏览器页面加载不出来的原因有很多&#xff0c;以下是一些可能的解决方法&#xff1a; - 检查网络连接&#xff1a;确保你的设备连接到稳定的网络&#xff0c;尝试重新启动路由器或调制解调器。 - 清除浏览器缓存&#xff1a;打开edge浏览器&#xff0c;点击右上…...

算法基础之二分与前缀和 day 6

文章目录 二分第一类第二类 前缀和原题链接题目描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 题目分析示例代码 二分 二分法是我们在高中数学就学习过的一种思想&#xff0c;他也是一种效率较高的查找算法&#xff0c;在编写代码的过程中&#xff0…...

github短视频去除水印项目Douyin_TikTok_Download_API介绍

当下正值短视频盛行的时代。在我们浏览短视频的同时&#xff0c;经常能发现一些精美的图片、引人入胜的文案以及吸引眼球的视频&#xff0c;想要将它们保存到本地。然而&#xff0c;保存下来的图片或视频通常伴随着不太愉悦的水印&#xff0c;这显著降低了使用体验。因此&#…...

FindMy技术用于键盘

键盘是我们生活中不可或缺的输入工具&#xff0c;是人与计算机之间沟通的桥梁&#xff0c;无论是编写文档、浏览网页、玩游戏、或是进行复杂的数据分析&#xff0c;键盘都在其中发挥着关键的作用。此外&#xff0c;键盘还是各种软件的快捷键操作的关键。通过熟练地运用快捷键&a…...

认识jmeter接口测试工具!

jmeter简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试&#xff0c;但后来扩展到其他测试领域。 下载 下载地址&#xff1a;​​​​​​Apache JMeter - Download Apache JMeter 安装 由于Jmeter…...

强大的按钮类CButtonST

转自&#xff1a;哈哈 强大的CButtonST_cbuttonst demo-CSDN博客 这里给大家介绍强大的按钮类CButtonST&#xff0c;可以使您的程序锦上添花。 CButtonST类主要包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四个文件。先将上述4个文件复制到自己的工程&#xff0c;然后在VC开…...

学习ing

记录 1.光圈的大小由一个称为“F值”的数字表示&#xff0c;这个数字越小&#xff0c;光圈就越大&#xff0c;光线也就越多。一般来说&#xff0c;使用较小的F值可以拍摄出更亮的照片&#xff0c;而使用较大的F值可以拍摄出更暗的照片。 2.光圈可以控制相机的曝光时间&#x…...

linux下数据库定时备份

1.编写shell脚本 #!/bin/bash USER"root" PASSWORD"Root.36#336" DATABASE"backup_test" HOSTNAME"127.0.0.1" DATEdate %Y%m%d_%H%M%S #日期格式&#xff08;作为文件名&#xff09; BACKUP_DIR/home/mysql/DB_backup/ #备份文件存…...

Qt/QML编程学习之心得:QSocketNotifier(二十一)

QSocketNotifier在Qt中怎么使用? QSocketNotifier使Qt的事件循环与其他基于文件描述符的事件循环集成成为可能。在Qt的主事件循环(QCoreApplication::exec())中检测到文件描述符操作。 使用低级(通常是特定于平台的)API打开设备后,可以创建一个套接字通知程序来监视文…...

【linux】lsblk和df -h显示的磁盘信息不同

【问题分析】 lsblk 查看的是block device,也就是逻辑磁盘大小。 df查看的是file system, 也就是文件系统层的磁盘大小。 这种情况应该是block device容量变大&#xff0c;单还没有反映到file system中。 【问题解决】 如果是ext{2,3,4}文件系统的话&#xff0c;可以用res…...

如何开发属于自己的小程序?

随着移动互联网的快速发展&#xff0c;小程序已成为一种不可忽视的力量。对于许多企业和个人而言&#xff0c;拥有一个属于自己的小程序不仅能提高品牌曝光度&#xff0c;还能带来实实在在的收益。那么&#xff0c;如何开发属于自己的小程序呢&#xff1f;本文将为你揭秘这一过…...

湖仓架构的演进

1.数据仓库架构的历史演进 起初&#xff0c;业界数据处理首选方式是数仓架构。通常数据处理的流程是把一些业务数据库&#xff0c;通过ETL的方式加载到Data Warehouse中&#xff0c;再在前端接入一些报表或者BI的工具去展示。 数据仓库概念是 Inmon 于 1990 年提出并给出了完…...

【头歌实训】Spark MLlib ( Python 版 )

文章目录 第1关&#xff1a;基本统计编程要求测试说明答案代码 第2关&#xff1a;回归编程要求测试说明参考资料答案代码 第3关&#xff1a;分类编程要求测试说明参考资料答案代码 第4关&#xff1a;协同过滤编程要求测试说明参考资料答案代码 第5关&#xff1a;聚类编程要求测…...

Java基础进阶(学习笔记)

注&#xff1a;本篇的代码和PPT图片来源于黑马程序员&#xff0c;本篇仅为学习笔记 static static 是静态的意思&#xff0c;可以修饰成员变量&#xff0c;也可以修饰成员方法 修饰成员的特点&#xff1a; 被其修饰的成员, 被该类的所有对象所共享 多了一种调用方式, 可以通过…...

uView NoticeBar 滚动通知

该组件用于滚动通告场景&#xff0c;有多种模式可供选择 #平台差异说明 App&#xff08;vue&#xff09;App&#xff08;nvue&#xff09;H5小程序√√√√ #基本使用 通过text参数设置需要滚动的内容 <template><view><u-notice-bar :text"text1&quo…...

ScintillaNET:提升开发效率的专业代码编辑组件深度解析

ScintillaNET&#xff1a;提升开发效率的专业代码编辑组件深度解析 【免费下载链接】ScintillaNET A Windows Forms control, wrapper, and bindings for the Scintilla text editor. 项目地址: https://gitcode.com/gh_mirrors/sc/ScintillaNET 核心价值定位&#xff1…...

libmill内存管理机制:如何避免协程栈溢出问题的完整指南

libmill内存管理机制&#xff1a;如何避免协程栈溢出问题的完整指南 【免费下载链接】libmill Go-style concurrency in C 项目地址: https://gitcode.com/gh_mirrors/li/libmill libmill是一个为C语言引入Go风格并发编程的轻量级库&#xff0c;它通过协程&#xff08;c…...

Windows平台APK安装架构革命:从模拟器到原生集成的技术演进

Windows平台APK安装架构革命&#xff1a;从模拟器到原生集成的技术演进 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 当移动生态与桌面系统相遇&#xff0c;技术融合…...

探索Ryujinx:Nintendo Switch模拟器全解析

探索Ryujinx&#xff1a;Nintendo Switch模拟器全解析 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 在游戏技术不断发展的今天&#xff0c;模拟器技术为玩家提供了跨平台体验游戏的可…...

大语言模型,视觉模型,全模态模型,语音模型和向量模型的区别和使用

1. 大语言模型&#xff08;Large Language Model, LLM&#xff09;定义&#xff1a;以文本为输入&#xff0c;生成文本的模型。特点&#xff1a;输入输出都是自然语言&#xff08;或包含少量结构化的 prompt&#xff09;。擅长对话、写作、推理、代码生成等任务。在 LangChain …...

运维实战:思科NAT配置全解析与典型场景应用

1. 为什么企业网络离不开NAT技术 想象一下你公司的内网有200台电脑&#xff0c;但ISP只分配了5个公网IP地址——这就是NAT技术大显身手的场景。作为网络工程师&#xff0c;我处理过太多类似案例&#xff0c;最夸张的一个客户用1个公网IP支撑了整个500人办公区的上网需求。 NA…...

AI系统-21AI芯片之NoC总线

在大型SoC芯片&#xff0c;特别是AI SoC中&#xff0c;存在多个异构核子系统&#xff0c;非常的大和复杂。对应芯片设计中&#xff0c;一个重要的技术就是NoC&#xff0c;要想富先修路&#xff0c;NoC就是通信的路。而且SoC把很多硬件模块集成到一个芯片上就是为了让路好走&…...

SUPER COLORIZER一键部署指南:基于Ubuntu 20.04的完整环境配置教程

SUPER COLORIZER一键部署指南&#xff1a;基于Ubuntu 20.04的完整环境配置教程 你是不是也遇到过一些珍贵的老照片&#xff0c;因为年代久远而褪色&#xff0c;想恢复它原本的色彩却无从下手&#xff1f;或者&#xff0c;你有一些黑白的设计稿&#xff0c;想快速预览上色后的效…...

Cortex-M 配置控制寄存器(CCR)的实战应用与优化技巧

1. Cortex-M配置控制寄存器&#xff08;CCR&#xff09;基础解析 第一次接触Cortex-M处理器的CCR寄存器时&#xff0c;我完全被这个看似简单却功能强大的寄存器震撼到了。这个位于系统控制块&#xff08;SCB&#xff09;中的32位寄存器&#xff0c;地址固定在0xE000ED14&#x…...

【SoC】【ESP32】从零到一:VSCode+ESP-IDF环境下的高效开发工作流构建

1. 为什么选择VSCodeESP-IDF开发ESP32&#xff1f; 第一次接触ESP32开发时&#xff0c;我尝试过各种开发环境&#xff1a;Arduino IDE、PlatformIO、Eclipse...直到遇到VSCodeESP-IDF的组合&#xff0c;才发现这才是嵌入式开发的"完全体"。ESP-IDF作为乐鑫官方的开发…...