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

推荐订阅源

Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
GbyAI
GbyAI
月光博客
月光博客
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
F
Full Disclosure
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
博客园 - Franky
V
V2EX
Recorded Future
Recorded Future
WordPress大学
WordPress大学
小众软件
小众软件
Webroot Blog
Webroot Blog
雷峰网
雷峰网
Vercel News
Vercel News
N
News and Events Feed by Topic
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
W
WeLiveSecurity
S
Schneier on Security
博客园 - 三生石上(FineUI控件)
K
Kaspersky official blog
F
Fortinet All Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Spread Privacy
Spread Privacy
博客园 - 叶小钗
罗磊的独立博客
D
Docker
Forbes - Security
Forbes - Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Register - Security
The Register - Security
A
About on SuperTechFans
B
Blog RSS Feed
I
InfoQ
T
Tailwind CSS Blog
G
Google Developers Blog
H
Help Net Security
V
Vulnerabilities – Threatpost
AWS News Blog
AWS News Blog
N
News and Events Feed by Topic
M
MIT News - Artificial intelligence
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
MyScale Blog
MyScale Blog
Latest news
Latest news

洛屿的小站

一种简单的卡尔曼滤波器设计 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