惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
U
Unit 42
The Register - Security
The Register - Security
S
Security Affairs
博客园 - 【当耐特】
Latest news
Latest news
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
C
Cisco Blogs
宝玉的分享
宝玉的分享
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog
P
Privacy & Cybersecurity Law Blog
腾讯CDC
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Vulnerabilities – Threatpost
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 叶小钗
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园_首页
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
WordPress大学
WordPress大学
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Microsoft Security Blog
Microsoft Security Blog
N
News and Events Feed by Topic
Recorded Future
Recorded Future
Scott Helme
Scott Helme
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
AWS News Blog
AWS News Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tor Project blog
F
Fortinet All Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hacker News: Front Page
J
Java Code Geeks
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
Last Week in AI
Last Week in AI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
W
WeLiveSecurity
V2EX - 技术
V2EX - 技术
T
Troy Hunt's Blog
Attack and Defense Labs
Attack and Defense Labs

洛屿的小站

一种简单的卡尔曼滤波器设计 Cadence - 应律而动,落指成音 Zephyr - 聆风之息,为你而奏 不改一行插件代码,实现消息优先级与阻断 洛玖定时任务系统 在 butterfly 主题中添加首页点集动画(基于p2line项目) 你好,2026 stm32f4xx-ads1256驱动 stm32f4xx-ad9854并行驱动 主动式网站状态监测实现及其应用 右键菜单加入用Trae打开文件和文件夹 三角洲行动ID映射表 洛玖SDK说明 为网页文章开头添加原文连接 Hexo-Butterfly主题在主页添加GitHub贡献日历 Proteus中555定时器仿真问题 装饰器 洛玖开发日记 STS3032舵机获取力矩输出 kotlin网页前后端那些事 mspm0g3507-ad9850 奇怪的bug Paddle模型转PaddleLite 人工智能考核 构建一个yolov3网络 yolo和paddle模型常见输出参数 PaddleDetection 随便写的一些东西 实验室C语言第一次考核题目讲解及相关代码解读 C语言神经网络房价预测系统 C、C++的大括号是必须的部分吗? C、C++预处理详解 C、C++其他关键字详解 C、C++存储类型关键字详解 C、C++控制语句关键字详解 C、C++数据类型关键字详解 C、C++关键字 C++药品管理系统 Bi-LSTM(Attention)的PyTorch实现 C语言实现波士顿房价预测 easy库的使用 edgeboardFZ3A相关问题 Predict.py的编写 Paddle环境搭建 百度Paddle模型训练 GMD09601-0.96OLED显示屏 【LeetCode 1617】统计子树中城市之间最大距离 C语言学习相关 STM32阵列按键 CH32(F10X F20X) 最短路 拓扑排序
C、C++数组,指针,指针数组,数组指针的区别
洛屿 · 2023-10-11 · via 洛屿的小站

C语言中的数组、指针、指针数组和数组指针是不同的概念,它们在用途和定义上有明显的区别。

数组 (Array):

  • 数组是一种数据结构,用于存储相同数据类型的元素。它们在内存中是连续分布的。
  • 数组的大小是在声明时确定的,且不能改变。
  • 数组的元素可以通过索引来访问,索引从0开始。

示例:

1
2
3
int myArray[5]; // 声明一个包含5个整数的数组
myArray[0] = 10; // 设置第一个元素的值为10
int x = myArray[2]; // 读取第三个元素的值

一维数组

一维数组可以通过下标的方式访问(id = 房间号-1

1
2
3
int num[10]; 
//房间号 1 2 3 4 5 6 7 8 9 10
//id 0 1 2 3 4 5 6 7 8 9

对于这个一维数组,我们可以这样理解它的存储方式(框中的数字为对应id)

image-20230312144553888

二维数组

对于二维数组,我们可以理解为:数组在此的基础上多了一层

1
2
3
int num[2][10];
//这是一个有两层,每层10个房间的数组
//如果我们想找到第2层第4个房间里面是谁,采用num[1][3]便可取出

image-20230312144931073

n维数组

同样的,你甚至可以弄出三维数组,四维数组

1
2
3
int num[2][10][2];
//这是一个有三层,每层10分区,每个分区2个房间的数组
//如果我们想找到第1层第6个分区里第2个房间里面是谁,采用num[0][5][1]便可取出

image-20230312145533716

指针 (Pointer):

  • 指针是一个变量,用于存储其他变量的内存地址。
  • 指针的类型必须与它指向的变量类型相匹配。
  • 通过指针,可以直接访问和修改变量的值。

示例:

1
2
3
4
int x = 10;
int *ptr = &x; // 声明一个整数指针,并将其指向x的地址
int y = *ptr; // 通过指针访问x的值
*ptr = 20; // 通过指针修改x的值

指针数组 (Array of Pointers):

  • 指针数组是一个数组,其元素都是指针。
  • 每个指针可以指向不同的数据类型。
  • 通常用于存储指向不同数据类型的数据或字符串的数组。

示例:

1
2
3
4
5
6
int a = 10, b = 20, c = 30;
int *ptrArray[3]; // 声明一个包含3个整数指针的指针数组
ptrArray[0] = &a;
ptrArray[1] = &b;
ptrArray[2] = &c;
int value = *(ptrArray[1]); // 通过指针数组访问b的值

数组指针 (Pointer to Array):

  • 数组指针是一个指针,它指向数组的首地址。
  • 通常用于处理二维数组或多维数组。
  • 数组指针的类型必须与它指向的数组类型相匹配。

示例:

1
2
3
int myArray[3] = {10, 20, 30};
int (*ptr)[3] = &myArray; // 声明一个指向包含3个整数的数组的指针
int element = (*ptr)[1]; // 通过数组指针访问myArray的第二个元素

总结:

  • 数组是一组相同类型的数据元素。
  • 指针是用于存储内存地址的变量。
  • 指针数组是指向不同数据类型的指针的数组。
  • 数组指针是指向数组的指针,通常用于处理多维数组。

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 洛屿的小站

打赏

  • wechat

    wechat

  • alipay

    alipay