一维数组名称、下标、长度、指针定义

C/C++数组长度的获取 问题产生 写OJ题时遇到一个问题: C++字符串长度可以直接用#include<string.h>里的strlen()函数得到 但是数组的长度无法直接获取 一维数组的长度网上有比较多的说明,而我正好要用到二维数组长度的获取 所以整理一下记录下来: 言归正传 在C++里,字符串长度可以用strlen()函数获取,但是C++不支持数组的长度直接获取,所以我们要用数组的大小来计算出... 阅读详情

1. 一维数组名称

2. 除下面两种情况外,一维数组名称都是指向数组中首元素地址的指针

1)对数组名进行sizeof运算,如sizeof(arr)取整个数组的长度20
2)对数组名取地址,是指向整个数组的指针,如

int *p = &arr;

3. 数组名 相当于是指针常量,具有如下性质:

int * const a
arr = NULL;    //(×)指针的指向不可以修改
arr[0] = 100;  //(√)指针指向的值可以修改

4. 数组下标可以为负数,前提是指向数组的指针进行了偏移

p += 3;
printf("p[0] = %d\n",p[-1]);    //给人看的,可读性强
printf("p[0] = %d\n",*p(p-1));  //给机器看的

5. 用sizeof计算数组长度

int len = sizeof(arr)/sizeof(int);

6. 数组指针的定义方式

(1)先定义数组的类型,再通过类型 定义数组类型的指针

typedef int(ARRAY_TYPE)[5]; //ARRAY_TYPE是一个存放5个int类型数据的数组类型
ARRAY_TYPE *arrP = &arr;  //arrP 等价于 arr
printf("arr[0] = %d\n",(*arrP)[1]);
printf("arr[0] = %d\n",*((*arrP)+1));

(2)直接定义数组类型的指针(常用)

typedef int(*ARRAY_TYPE)[5]; //ARRAY_TYPE是一个存放5个int类型数据的数组指针类型
ARRAY_TYPE P = &arr;  
printf("arr[0] = %d\n",(*P)[0]);

 

【C语言】深入理解数组(一维数组、二维数组的表示及数组与指针的关系) 一、一维数组的定义与初始化 1.一维数组的定义 一维数组也称向量,它用以组织具有一维顺序关系的一组同类型的数据。 一维数组的定义方式: 数据类型 数组名[常量表达式] 类型说明符表示数组中所有元素的类型;常量表达式指数组的长度(即数组中存放元素的个数) 例如:int array[5]; 上述代码 int 表示数组元素的类型,array 是数组的名称,5是指数组的长度。 数组占据的内存空间是连续的,所以很容易计算出数组占据的内存大小( 数组长度*sizeof(数据类型))和每个元素所对.. 阅读详情

相关推荐

C++数组(数组定义方式、数组名作用、数组地址)

文章目录1 数组概述2 一维数组2.1 一维数组定义方式2.2 一维数组数组名2.3 冒泡排序3 二维数组3.1 二维数组定义方式3.2 二维数组数组名3.3 二维数组应用案例 1 数组概述 数组是一个集合,用于存放相同类型的数据元素。 特点1:数组中的每个数据元素具有相同的数据类型。 特点2:数组占用一段连续的内存空间。 2 一维数组 2.1 一维数组定义方式 注1:数组名的命名规范与变量名命名一致,且数组名不能与变量重名。 注2:数组的下标/索引从0开始。 一维数组定义的3种方式: (1)数据类

NewsomTech 10万+

【C++基础语法入门】5.数组

数组 目录:1.一维数组1.1 一维数组定义方式1.2 一维数组数组名1.3 冒泡排序2.二维数组2.1 二维数组定义方式2.2 二维数组数组名 所谓数组,就是一个集合,里面存放了相同类型的数据元素。 特点1:数组中的每个数据元素都是相同的数据类型 特点2:数组是由连续的内存位置组成的 1.一维数组 1.1 一维数组定义方式 ①数据类型 数组名[数组长度]; ②数据类型 数组名[数组长度] = {值1, 值2, ...}; ③数据类型 数组名[] = {值1, 值2, ...}; 可以通过下标来访问数组

糊涂懿的博客 1573

04、认识下一维数组

04、数组 ①、为什么会有数组? 在实际的程序设计和代码编写中,经常会用到大批同类型的数据,比如某个班学生的成绩等,为方便解决这类问题,C语言提供了数组这一数据结构,这里的数据结构,可理解为数据的存放和管理方式。程序经常使用同类型的数据,比如要处理某个班级的学生成绩信息,如果只有几个学生,我们可以使用几个同类型变量,比如:int mark0, mark1, mark2, mark3, mark4; 这样,便可以存放5个学生的成绩,但如果是几百人几千人呢?肯定不能一直这样写下去,所以,如何合理组织大量同类数据

weixin_45041038的博客 472

笔记

笔记 自用

qq_40709990的博客 670

Python3 ACM模式输入输出全攻略:从牛客网到华为机试的实战技巧

本文详细解析了Python3在ACM模式下的输入输出处理技巧,针对牛客网、华为机试等在线评测系统。文章从input()函数本质出发,总结了六种高频输入模式的处理模板,并提供了链表、二叉树等数据结构的I/O实战方案,最后给出性能优化与常见避坑指南,帮助开发者高效应对算法笔试。

zero1的博客 998

尚硅谷Redis 7学习笔记

尚硅谷Redis 7学习笔记

不更了,主打一个陪伴 2万+

c++获取数组长度的几种方法

1.模板函数1 通过引用一个数组来读取起长度 (&arr)先前调其为引用,_Ty [_Size]指出起引用值的类型 template<typename _Ty, size_t _Size> size_t GetArrSize( _Ty(&arr)[_Size]) { return _Size; } 2.模板函数2 _Ty && 通用引用,可以传递"str"这样的字符串,不过这个方法有bug,在传入非数组时会出错。 template&l

夏湾的博客 1万+

Windows 11 下 WSL 离线安装 Ubuntu 22.04 保姆级教程(国内镜像加速版)

本文提供了一份针对中国地区用户的Windows 11下WSL离线安装Ubuntu 22.04的详细教程。通过使用国内镜像源加速下载安装包,并配合PowerShell命令完成部署,有效解决了官方商店下载缓慢的问题。教程涵盖环境准备、离线包获取、安装初始化及安装后的关键优化配置,帮助用户快速搭建高效的Linux开发环境。

weixin_28452161的博客 1378

numpy学习笔记

numpy学习笔记 一、list 和 ndarray 对比 list 分散存储,使用指针; ndarray 存在连续均匀的内存中; 使用 y = x * 2,而是使用x *= 2 (避免隐式拷贝) 二、numpy 中两个重要对象 ndarray(N-dimensional array object),多维数组 ufunc(universal function object),对多维数组的操作 三、ndarray ndarray 实际上是多维数组的含义。在 NumPy 数组中,维数称为秩(rank),

weixin_45515116的博客 628

Ubuntu 24.04 搭建 Squid 代理服务器终极指南:从入门到 HTTPS 缓存AI模型

本文详细指导在Ubuntu 24.04系统部署Squid代理服务器,实现AI大模型文件的高效缓存。重点内容包括:1) 安装squid及必备的squid-openssl扩展包;2) 配置HTTPS拦截(SSL-Bumping)功能,创建CA证书和SSL数据库;3) 优化缓存策略,设置4TB存储空间并强制缓存常见大文件格式;4) 结合华为防火墙实现透明代理。文章特别强调实际部署中的关键注意事项和常见错误解决方案,如证书路径配置、权限设置等问题,帮助用户快速搭建企业级缓存代理服务。

zlt315的博客 1921

【G4基础03】2.3 How to Specify Materials in the Detector

定义探测器材料

adelall的博客 489

java--一维数组的定义与使用

复习巩固上课学习的java知识

csy20230322065的博客 2200

Autoware1.14-摄像头目标检测YOLO-V3

在Autoware1.14中部署YOLOV3

weixin_43687753的博客 3139

C++ 数组:一维数组的定义、遍历与常见操作

一维数组的核心是“相同类型+连续内存”,定义时需指定数据类型、数组名称与数组长度(可选,初始化时可推导),初始化则是为数组元素赋予初始值,避免使用未初始化的随机值。// 语法格式:数据类型 数组名[数组长度];// 数组长度必须是常量(C++11 前不支持变量,C++11 后可通过初始化列表推导)int arr[5];// 定义一个能存储5个int类型数据的一维数组// 定义一个能存储10个float类型数据的一维数组// 定义一个能存储20个char类型数据的一维数组。

qq_43402143的博客 1181

STM32F407驱动OV2640摄像头:从SCCB协议到I2C模拟的保姆级避坑指南

本文详细介绍了STM32F407驱动OV2640摄像头的完整流程,重点解析SCCB协议与I2C的关键差异,并提供GPIO模拟实现方案。通过实战案例和调试技巧,帮助开发者避开常见陷阱,实现稳定的图像采集功能。

weixin_28700411的博客 346

OpenClaw 与十几款国产 “龙虾” 智能体深度对比

详解介绍OpenClaw和各种类似国产“龙虾”智能体工具深度对比

program哲学 2349

C语言:一维数组名称含义、二维数组名称含义、数组指针、选择排序实现

文章目录一、一维数组名称含义二、数组指针三、二维数组名称含义四、选择排序五、指针数组排序 一、一维数组名称含义 一维数组名称含义: 1.除了两种特殊情况,一维数组名称都是指向数组首元素地址的指针。 特殊情况1:对数组的名称进行sizeof:计算的是整个数组的大小。 void test() { int arr[5] = {1,2,3,4,5}; //对一维数组名称进行sizeof(); pri...

Rain的博客 1669

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

一维数组和指针

详解一维数组与指针间的结合使用,可深刻理解指针的使用。

程序员_小兵 327

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C语言一维数组是怎样定义的?

C语⾔中怎样定义⼀个数据是⼀维数组,定义格式什么样?

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 605

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数组-基础篇,数组基础概念,一维数组定义、引用与初始化

数组是由数据类型相同的一组元素组成的一种数据结构,在内存中顺序存放。数组包括:一维数组,二维数组,多维数组。 一维数组是最常使用的,二维数组和多维数组使用较少。在函数传参和使用返回值时,对数组的操作要特别注意,这一部分会在《数组-高级》博客中介绍。一维数组只存储一组相同类型的数据,可以使用数组名和下标的组合可以访问一维数组中的任意元素。下标是数组元素对应的序号,即中括号和其中的序号! 特别强调一下对应关系,数组的下表序号从0开始,到n-1结束。 数组的大小要显示的声明,在定义的时候就要确定好数组的大小,这是

xiawucha159的博客 1511

4.1 C语言一维数组全解析:定义、初始化、引用及实战技巧

C语言作为编程世界的基石之一,以其高效、灵活的特性吸引了无数开发者。在C语言的学习旅程中,数组是一个绕不开的重要概念,而一维数组作为数组的基础形态,更是初学者必须掌握的核心知识。今天,我将从定义、初始化、引用到实战技巧,全面解析一维数组,助你轻松掌握这一关键技能。定义语法数据类型 数组名[数组长度];数据类型:决定数组存储元素的类型(如intfloatchar数组名:标识数组的名称,用于后续引用。数组长度:明确数组中元素的个数,需为正整数常量或常量表达式。内存布局。

chenshenshen_的博客 1163

一维数组名称

一位数组名称 本质并不是一个指针 有两种特殊情况: 对数组名称进行sizeof 对数组名称 取地址,获取的指针步长是整个数组长度 除了两种特殊情况外,都是指向数组中首元素的地址的指针 数组名称—指针常量,指针的指向不可以修改 如果将数组名传入到函数参数中,为了提高可读性通常写为:int arr[] 访问数组元素时候,下标可以为负数 代码示例: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h

个人站点:https://www.heimajinpai.cn/ 194

c定义一个整型数组_自学C++基础教程【数组】(一维数组)

一维数组C++语言中在计算机中存储和处理大量数据时,有时候需要处理数量较多的同类型变量;(数组)有时候需要直接获得变量在内存中的存储地址; (指针 )有时候需要为变量取一个别名来增加程序的可读性; (引用)处理大量同类型变量时,可以使用数组。直接获得变量的内存地址时可以使用指针。为变量更改名称可以使用引用。数组是由一组顺序排列的,具有相同类型的变量组成的集合。数组具有如下特性:1.数组中的每个元素...

weixin_39974932的博客 4801

c语言一维数组指针变量,C语言指针和一维数组关系

C语言数组和指针对于初学者来言,指针是一个很大的坑,但是C语言能够那么多年来屹立不倒,也有赖于指针,没有指针C语言将什么也不是,下面简单分析一下C指针与数组的关系,笔记是自己整理的,如果有大牛发现有些不详尽或者有错误的话,欢迎补充指正,谢谢!也希望初学者能够学好指针,因为把指针搞懂了,后面那些什么Java、C++、OC等一些库函数的底层实现就比较好懂了。C语言中,数组和指针密不可分,在系统内部实现...

weixin_35890173的博客 417

c语言一维数组a含5个元素,C语言-一维数组

在C程序语言的设计中,为了方便在编程时的方便使用,将具有相同类型的变量按照一定的形式组织的。那么,这些排列相同的数据元素的集合称之为数组。因此,按照数组元素的类型不同,可以分为整型数组、字符数组、实型数组……1 一位数组1. 一维数组的定义以为数组的定义方式:类型说明符 数组名[常量表达式]:注释:1.类型说明符是基本数据类型或者结构数据类型;2.数组名是用户自己定义的名称;3.常量表达式表示的...

weixin_29000891的博客 4362

cppTest-3.0:指针相关-1(指针与一维数组)

/** *cppTest-3.0:指针相关-1(指针与一维数组) * *author 炜sama */ #include int whole[5];//全局变量一维数组的元素可以自动获得初值0! void main() { cout<<"数组定义及初始化的问题-----------"<<endl; int a[5]={0,1,2,3,4};//Java的定义不能指定数组长度5! i

炜X影的专栏 721
上一篇: 结构体内存对齐之对齐规则
下一篇: C++之short, int, long, long long, double等范围
JCjunior
博客等级 码龄11年 45粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值