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

C语言初阶—数组

        数组是一组相同类型元素的集合。

        在C99标准之前,数组的大小必须是常量或常量表达式。

        在C99标准之后,数组的大小可以是变量,可以支持变长数组,但变长数组不能初始化。

        不完全初始化,剩余的元素默认初始化为0 。

        数组访问操作符,下标引用操作符----> [ ]

        数组是使用下标来访问的,下标是从 0 开始的。

        数组的大小可以通过计算得到。

int arr[10] = {0};
int sz = sizeof(arr) / sizeof(arr[0]);

        数组在内存中是连续存放的。

#include <stdio.h>int main()
{int arr[10] = {1,2,3,4,5,6,7,8,9,10};int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;for(i = 0;i <= sz - 1;i++)printf("arr[%d]的地址是%p\n",i,&arr[i]);return 0;
}

        二维数组的使用也是通过下标的方式。

        可以把二维数组理解为:一维数组的数组,即二维数组里每个元素都是一个一维数组。

#include <stdio.h>int main()
{int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};int i = 0;int j = 0;for(i = 0;i < 3;i++)for(j = 0;j < 4;j++)printf("arr[%d][%d]的地址是%p\n",i,j,&arr[i][j]);return 0;
}

        分析图上地址:二维数组在内存中也是连续存储的。

        数组传参的时候,形参有两种写法:

        1.数组

        2.指针

        数组名本质上是:数组首元素的地址,但是这个说法也不太准确,数组名确实能表示首元素的地址,但是有两个例外:

1.sizeof(数组名) ,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。

2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。

#include <stdio.h>int main()
{int arr[10] = {10,2,3,14,5,6,17,8,9,1};int n = 0;printf("%p\n",arr);printf("%p\n",arr + 1);printf("%p\n",&arr[0]);printf("%p\n",&arr[0] + 1);printf("%p\n",&arr);printf("%p\n",&arr + 1);n = sizeof(arr);printf("%d\n",n);return 0;
}

        二维数组的数组名也表示二维数组首元素的地址,二维数组首元素相当于第一行元素,也就是一个一维数组,第一行元素4个,数组元素是 int 类型,一共是4 * 4 = 16字节。

#include <stdio.h>int main()
{int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};int n = 0;int row = 0;int col = 0;printf("%p\n",arr);printf("%p\n",arr + 1);printf("%p\n",&arr[0]);printf("%p\n",&arr[0] + 1);printf("%p\n",&arr);printf("%p\n",&arr + 1);n = sizeof(arr);row = sizeof(arr) / sizeof(arr[0]);//行col = sizeof(arr[0]) / sizeof(arr[0][0]);//列printf("%d\n",n);printf("%d\n",row);printf("%d\n",col);return 0;
}

相关文章:

C语言初阶—数组

数组是一组相同类型元素的集合。 在C99标准之前&#xff0c;数组的大小必须是常量或常量表达式。 在C99标准之后&#xff0c;数组的大小可以是变量&#xff0c;可以支持变长数组&#xff0c;但变长数组不能初始化。 不完全初始化&#xff0c;剩余的元素默认初始化为0 。 数组访…...

飞桨(PaddlePaddle)数据预处理教程

文章目录 飞桨&#xff08;PaddlePaddle&#xff09;数据预处理教程1. 安装飞桨2. 了解飞桨的数据预处理方法3. 应用单个数据预处理方法4. 组合多个数据预处理方法5. 在数据集中应用数据预处理5.1 在框架内置数据集中应用5.2 在自定义数据集中应用 6. 总结 飞桨&#xff08;Pad…...

MYSQL C++链接接口编程

使用MYSQL 提供的C接口来访问数据库,官网比较零碎,又不想全部精读一下,百度CSDN都是乱七八糟的,大部分不可用 官网教程地址 https://dev.mysql.com/doc/connector-cpp/1.1/en/connector-cpp-examples-connecting.html 网上之所以乱七八糟,主要是MYSQL提供了3个接口两个包,使用…...

并发编程中常见的设计模式,c++多线程如何设计

C多线程设计&#xff08;任务的“多对一”、“一对多”、“多对多”情况 该如何设计线程&#xff1f;&#xff09; C书籍中并未找到对多线程设计&#xff0c;有很完整详细的总结&#xff01;&#xff01;C并发编程书籍中也只是一些理论或则零散的多线程实例。无奈&#xff0c;…...

解决android studio build Output中文乱码

1.效果如下所示&#xff1a; 代码运行报错的时候&#xff0c;Build Output报的错误日志中中文部分出现乱码&#xff0c;导致看不到到底报的什么错。 2.解决办法如下&#xff1a; 点击Android studio开发工具栏的Help-Edit Custom VM Options....&#xff0c;Android studio会…...

[云原生] K8s之pod进阶

一、pod的状态说明 &#xff08;1&#xff09;Pod 一直处于Pending状态 Pending状态意味着Pod的YAML文件已经提交给Kubernetes&#xff0c;API对象已经被创建并保存在Etcd当中。但是&#xff0c;这个Pod里有些容器因为某种原因而不能被顺利创建。比如&#xff0c;调度不成功(…...

[Unity3d] 网络开发基础【个人复习笔记/有不足之处欢迎斧正/侵删】

TCP/IP TCP/IP协议是一 系列规则(协议)的统称&#xff0c;他们定义了消息在网络间进行传输的规则 是供已连接互联网的设备进行通信的通信规则 OSI模型只是一个基本概念,而TCP/IP协议是基于这个概念的具体实现 TCP和UDP协议 TCP:传输控制协议&#xff0c;面向连接&#xff0c…...

Tomcat的配置文件

Tomcat的配置文件详解 一.Tomcat的配置文件 Tomcat的配置文件默认存放在$CATALINA_HOME/conf目录中&#xff0c;主要有以下几个&#xff1a; 1.server.xml: Tomcat的主配置文件&#xff0c;包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息&#x…...

猴子吃桃问题(python版)

文章预览&#xff1a; 题目python解法一&#xff1a;运行结果 python解法二&#xff1a;运行结果 python解法三&#xff1a;运行结果 题目 猴子吃桃问题&#xff1a;猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个。 第二天早…...

C语言入门到精通之练习49:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的 *。

题目&#xff1a;读取7个数&#xff08;1—50&#xff09;的整数值&#xff0c;每读取一个值&#xff0c;程序打印出该值个数的 &#xff0a;。 程序分析&#xff1a;无。 实例 #include<stdio.h> #include<stdlib.h> int main() {int n,i,j;printf("请输入…...

如何在Windows轻量应用服务器上安装和配置SSH?

如何在Windows轻量应用服务器上安装和配置SSH&#xff1f; 检查OpenSSH的可用性&#xff1a;首先&#xff0c;需要以管理员身份打开PowerShell并运行命令Get-WindowsCapability - Online | Where-Object Name - like OpenSSH*来检查OpenSSH服务是否可用。如果服务未启动或不可…...

leetcode日记(36)全排列

想思路想了很久……思路对了应该会很好做。 我的思路是这样的&#xff1a;只变化前n个数字&#xff0c;不断增加n&#xff0c;由2到nums.size()&#xff0c;使用递归直到得到所有结果 代码如下&#xff1a; class Solution { public:vector<vector<int>> permut…...

Flink:动态表 / 时态表 / 版本表 / 普通表 概念区别澄清

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…...

异常网络下TCP的可靠服务机制(慢启动、拥塞避免、快重传、快恢复)

目录 TCP超时重传拥塞控制概述慢启动和拥塞避免下面讲解发送端如何判断拥塞发生。 快速重传和快速恢复 本文描述TCP在异常网络下的处理方式 以保证其可靠的数据传输的服务 TCP超时重传 tcp服务能够重传其超时时间内没有收到确认的TCP报文段&#xff0c;tcp模块为每一个报文段都…...

PL/SQL执行.sql文件

1.编写.sql文件&#xff0c;创建update.sql文件&#xff0c;文件如下&#xff1a; set feedback off set define off --更新表中所有人的年龄 update a set age18; prompt Done. 2.打开plsql选择命令窗口&#xff0c;即选择File->New->Command Window&#xff1b; 打…...

赋能中国制造,大道云行发布智能制造分布式存储解决方案

《中国制造2025》指出&#xff0c;“制造业是国民经济的主体&#xff0c;是立国之本、兴国之器、强国之基。” 智能制造引领产业提质增效 智能制造是一种利用先进的信息技术、自动化技术和智能技术来优化和升级制造业生产过程的方法。它将人工智能、大数据、物联网、机器学习等…...

MySQL Strict Mode is not set for database connection ‘default‘

在使用 DJango 框架执行迁移文件的命令时&#xff0c;可以看到出现如下警告&#xff1a; (ll_env) D:\workspace\workspace-mengll\learning-log>python manage.py migrate System check identified some issues: WARNINGS: ?: (mysql.W002) MySQL Strict Mode is not set …...

分享:大数据信用报告查询的价格一般要多少钱?

现在很多人都开始了解自己的大数据信用了&#xff0c;纷纷去查大数据信用报告&#xff0c;由于大数据信用与人行征信有本质的区别&#xff0c;查询方式和价格都不是固定的&#xff0c;本文就为大家详细讲讲大数据信用报告查询的价格一般要多少钱&#xff0c;希望对你有帮助。 大…...

tomcat下载安装配置教程

tomcat下载安装配置教程 我是使用tomcat下载安装及配置教程_tomcat安装-CSDN博客 此贴来进行安装配置&#xff0c;原文21年已经有些许不同。 下载tomcat 官网&#xff1a;http://tomcat.apache.org/ 我们老师让安装8.5以上&#xff0c;所以我直接选择版本9 点击9页面之后…...

GO—变量

Go语言是静态类型语言&#xff0c;因此变量&#xff08;variable&#xff09;是有明确类型的&#xff0c;编译器也会检查变量类型的正确性。 我们从计算机系统的角度来讲&#xff0c;变量就是一段或者多段内存&#xff0c;用于存储数据 1.1 标准格式 var 变量名 变量类型 1 …...

告别卡顿!用AutoDL云GPU+VS Code远程开发,5分钟搞定深度学习环境搭建

告别卡顿&#xff01;用AutoDL云GPUVS Code远程开发&#xff0c;5分钟搞定深度学习环境搭建 当你在本地运行ResNet50模型时&#xff0c;风扇狂转如直升机起飞&#xff0c;而epoch进度条却像蜗牛爬行——这场景每个深度学习开发者都不陌生。传统本地开发环境面临三大困境&#x…...

北斗导航 | 接收机自主完好性监测算法研究综述:从算法到应用

文章目录 摘要 关键词: 一、引言 二、RAIM算法分类与研究进展 2.1 算法分类框架 2.2 多星座融合与ARAIM 2.3 故障检测与排除方法的多元演进 2.4 机器学习与深度学习融合 三、应用领域研究进展 3.1 航空领域的纵深演进 3.2 轨道交通、海事与无人机的新兴应用 3.3 视觉辅助与多源…...

OpenClaw安全指南:千问3.5-9B本地化部署权限控制

OpenClaw安全指南&#xff1a;千问3.5-9B本地化部署权限控制 1. 为什么需要关注OpenClaw的安全配置&#xff1f; 去年冬天&#xff0c;我在调试一个自动整理文档的OpenClaw任务时&#xff0c;差点酿成大祸。当时脚本误将整个Downloads文件夹的内容按修改日期排序后&#xff0…...

OpenClaw多任务管道:Phi-3-mini-128k-instruct串联处理复杂工作流

OpenClaw多任务管道&#xff1a;Phi-3-mini-128k-instruct串联处理复杂工作流 1. 为什么需要多任务管道&#xff1f; 上个月我需要处理一批英文技术文档的本地化工作&#xff0c;包含三个关键步骤&#xff1a;文档翻译、格式转换和邮件发送。最初我尝试手动操作——先用翻译工…...

Qt项目实战:借助Valgrind精准定位与修复内存泄漏

1. 为什么Qt开发者需要Valgrind 刚接触Qt开发时&#xff0c;我总以为用了智能指针和Qt自带的内存管理机制就能高枕无忧。直到某个深夜&#xff0c;项目上线前突然崩溃&#xff0c;日志里只有一句"segmentation fault"&#xff0c;我才意识到内存问题有多可怕。那次经…...

5个简单技巧:免费解锁付费内容的终极Chrome扩展指南

5个简单技巧&#xff1a;免费解锁付费内容的终极Chrome扩展指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息时代&#xff0c;优质内容常常被付费墙阻隔&#xff0c;但今天我…...

深圳 SEO 关键词推广的常见方法有哪些_深圳 SEO 关键词推广与竞价排名有何不同

深圳 SEO 关键词推广的常见方法有哪些 在数字化营销的时代&#xff0c;深圳 SEO 关键词推广已经成为企业提升网站曝光率和吸引潜在客户的重要手段。究竟有哪些常见的深圳 SEO 关键词推广方法呢&#xff1f;本文将详细探讨这些方法&#xff0c;帮助你更好地理解和实践深圳 SEO …...

RTOS实时操作系统核心机制与工程实践解析

1. RTOS基础概念与适用场景解析实时操作系统&#xff08;Real-Time Operating System&#xff09;是嵌入式开发中经常遇到的核心组件。作为一名在工业控制领域摸爬滚打多年的工程师&#xff0c;我见过太多项目因为RTOS选型不当而导致的灾难性后果。与通用操作系统不同&#xff…...

电机类型详解与选型维护指南

1. 电机基础概念解析电机作为现代工业的核心动力装置&#xff0c;其重要性不言而喻。简单来说&#xff0c;电机就是通过电磁感应原理实现电能与机械能相互转换的设备。想象一下&#xff0c;它就像一个能量翻译官&#xff0c;把电这种看不见的能量形式&#xff0c;翻译成我们看得…...

Qt实战:用QCustomPlot打造高性能动态波形图(附GitHub源码)

Qt实战&#xff1a;用QCustomPlot打造高性能动态波形图&#xff08;附GitHub源码&#xff09; 在物联网设备监控、工业自动化测试或生物电信号分析场景中&#xff0c;开发者常面临每秒数千个数据点的实时可视化挑战。传统绘图库在渲染高频动态波形时容易出现卡顿、帧率骤降等问…...