C语言进阶课程学习记录-数组指针和指针数组分析

C语言进阶课程学习记录-数组指针和指针数组分析

    • 实验-数组指针的大小
    • 实验-指针数组
    • 小结

本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验-数组指针的大小

#include <stdio.h>typedef int(AINT5)[5];
typedef float(AFLOAT10)[10];
typedef char(ACHAR9)[9];int main()
{AINT5 a1;float fArray[10];AFLOAT10* pf = &fArray;ACHAR9 cArray;char(*pc)[9] = &cArray;char(*pcw)[4] = cArray;int i = 0;printf("%d, %d\n", sizeof(AINT5), sizeof(a1));//20 20for(i=0; i<10; i++){(*pf)[i] = i;}for(i=0; i<10; i++){printf("%f\n", fArray[i]);}//0~9printf("%p, %p, %p\n", &cArray, pc+1, pcw+1);// pc+9 pcw+4return 0;
}/*output:
20, 20
0.000000
1.000000
2.000000
3.000000
4.000000
5.000000
6.000000
7.000000
8.000000
9.000000
0060FEAB, 0060FEB4, 0060FEAF*/

在这里插入图片描述

实验-指针数组

#include <stdio.h>
#include <string.h>#define DIM(a) (sizeof(a)/sizeof(*a))int lookup_keyword(const char* key, const char* table[], const int size)
{int ret = -1;int i = 0;for(i=0; i<size; i++){if( strcmp(key, table[i]) == 0 ){ret = i;break;}}return ret;
}int main()
{const char* keyword[] = {"do","for","if","register","return","switch","while","case","static"};printf("%d\n", lookup_keyword("return", keyword, DIM(keyword)));printf("%d\n", lookup_keyword("main", keyword, DIM(keyword)));return 0;
}/*output:
4
-1*/

小结

数组的类型由元素类型数组大小共同决定
数组指针是一个指针指向对应类型的数组
指针数组是一个数组,其中每个元素都为指针
数组指针遵循指针运算法则
指针数组拥有C语言数组的各种特性

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

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

相关文章

简述Java中synchronized关键字的底层工作原理

在Java中&#xff0c;synchronized 关键字是一个重要的同步机制&#xff0c;用于控制多线程对共享资源的访问&#xff0c;以防止并发问题。了解 synchronized 的底层工作原理&#xff0c;可以帮助我们更好地编写线程安全的代码。synchronized 关键字可以应用于方法或者代码块&a…

【MoS2】应变增强的单层MoS2光电探测器

这篇文章的标题是《Strain-Enhanced Large-Area Monolayer MoS2 Photodetectors》&#xff0c;作者是Borna Radatovic等人&#xff0c;发表在《ACS Applied Materials & Interfaces》期刊的2024年第16卷。文章主要研究了应变增强的大面积单层MoS2光电探测器的性能和应用潜力…

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题1

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题1 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书&#xff0c;赛题&#xff0c;解析等资料&#xff0c;知识点培训服务 添加博主wx&#xff1a;liuliu548…

Testng测试框架(3)-数据驱动TestNG@DataProvider

TestNG 是一个强大的 Java 测试框架&#xff0c;它提供了许多高级功能&#xff0c;如参数化测试、依赖注入、分组等。其中&#xff0c;DataProvider 是 TestNG 中一个非常有用的注解&#xff0c;用于为测试方法提供数据。 DataProvider 的作用 使用 DataProvider 注解的方法可…

【算法刷题day24】回溯算法+简单剪枝

77.组合 文档链接&#xff1a;[代码随想录] 题目链接&#xff1a;77.组合 题目&#xff1a; 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 class Solution { private:vector<int> path;vector<vector&…

java数据结构与算法刷题-----LeetCode260. 只出现一次的数字 III

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 与运算取末尾1分组 与运算取末尾1分组 解题思路&#xff1a;时间…

文献速递:深度学习肝脏肿瘤诊断---基于多相增强 CT 和临床数据的恶性肝肿瘤鉴别诊断深度学习

Title 题目 Deep learning for diferential diagnosisof malignant hepatic tumors based on multi-phase contrast-enhanced CT and clinical data 基于多相增强 CT 和临床数据的恶性肝肿瘤鉴别诊断深度学习 Abstract 摘要 Liver cancer remains the leading cause of can…

Node.js 开发技巧

轻松创建 HTTP 服务器&#xff1a; 使用 Node.js&#xff0c;你可以轻松创建自己的 HTTP 服务器。只需几行代码&#xff0c;你就可以像一位传统的酒保一样为客户端提供服务。记住&#xff0c;不要忘记问客户端想要些什么&#xff01; const http require(http);const server …

事件冒泡、事件捕获、事件委托

事件冒泡、事件捕获、事件委托 事件冒泡和事件捕获: 解释事件冒泡和事件捕获的概念。 事件冒泡和事件捕获是DOM事件传播的两个阶段。当一个事件发生在DOM中的某个元素上时&#xff0c;它可以在父元素之间传播。事件捕获阶段从根节点开始&#xff0c;逐级向下直到触发事件的元素…

2024年150道高频Java面试题(二十六)

51. 线程和进程的区别&#xff1f; 线程和进程是操作系统中进行任务调度和资源分配的两个基本概念。 进程&#xff1a; 进程是操作系统进行资源分配的基本单位。每个进程都有独立的地址空间&#xff0c;一个进程崩溃后&#xff0c;在保护模式下不会影响到其他进程&#xff0…

计算机网络——TCP和UDP协议

目录 前言 前篇 引言 TCP与UDP之间的区别 TCP 三次握手 为什么要三次握手而不是两次握手&#xff1f; 丢包问题与乱序问题的解决 四次挥手 为什么客户端需要等待超时时间&#xff1f; UDP协议 TCP和UDP的主要区别 前言 本博客是博主用于复习计算机网络的博客&…

软件开发安全备受重视,浙江某运营商引入CWASP认证课程,

​浙江省某大型运营商是一家实力雄厚、服务优质的通信运营商&#xff0c;致力于为全省用户提供优质、高效的通信服务。数字时代&#xff0c;该运营商顺应信息能量融合发展趋势&#xff0c;系统打造以5G、算力网络、能力中台为重点的新型信息基础设施&#xff0c;夯实产业转型升…

Redis入门到通关之五大基本数据类型及其使用场景

文章目录 一 什么是NoSQL&#xff1f;二 Redis是什么&#xff1f;三 Redis五大基本类型1 String&#xff08;字符串&#xff09;应用场景 2 List&#xff08;列表&#xff09;应用场景 3 Set&#xff08;集合&#xff09;4 sorted set&#xff08;有序集合&#xff09;应用场景…

基于Python的邮件分类系统设计与实现

基于python的邮件分类系统设计与实现 Design and Implementation of a Python-based Email Classification System 完整下载链接:基于python的邮件分类系统设计与实现 文章目录 基于python的邮件分类系统设计与实现摘要第一章 引言1.1 研究背景1.2 研究目的1.3 研究内容1.4 创…

历史数据或许并不能反映未来趋势

历史数据可以帮助我们理解和分析过去的趋势和模式&#xff0c;从而推测未来的趋势。然而&#xff0c;历史数据并不能直接反映未来的趋势&#xff0c;因为未来的情况可能会受到许多不可预测的因素和变量的影响。历史数据可以作为参考和依据&#xff0c;但在预测未来趋势时需要综…

java内部类和引用传递的理解

日常中的疑惑&#xff0c;不能让他随意溜走 疑惑1&#xff1a; 看到一些代码常常用静态内部类&#xff0c;以及内部类&#xff0c;为什么我不经常用&#xff0c;偶尔是为了省事 才会用到内部类&#xff0c;难道还有一些其他好处&#xff1f; 内部类可以实现多重继承&#x…

代码随想录阅读笔记-回溯【组合总和II】

题目 给定一个数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明&#xff1a; 所有数字&#xff08;包括目标数&#xff09;都是正整数。解集不能包含重复的组…

VBA中如何对工作表进行排序

代码 在VBA中对工作表进行排序的最简单方法是直接使用Move方法来移动工作表。 Sub SortSheetsByNameDescending()Dim sheetsDim sheet As WorksheetDim i As Integer, j As IntegerDim sortedSheets() As Array 获取当前工作簿中的所有工作表Set sheets ThisWorkbook.Sheets…

numpy学习笔记(4),通用函数

7. 通用函数 通用函数(ufunc)使得NumPy数组操作用于数组中的每一个元素。通用函数是C语言实现的&#xff0c;这样会取得更快的执行效率。 7.1 数学运算函数 7.1.1 算术运算函数 通用函数说明add(x1, x2[, y])y x1 x2substrace(x1, x2[, y])y x1 - x2mulitply(x1, x2[, y…

MySQL索引、B+树相关知识汇总

MySQL索引、B树相关知识汇总 一、有一个查询需求&#xff0c;MySQL中有两个表&#xff0c;一个表1000W数据&#xff0c;另一个表只有几千数据&#xff0c;要做一个关联查询&#xff0c;如何优化&#xff1f;1、为关联字段建立索引二、小表驱动大表 二、b树和b树的区别1、更高的…