首页 > 其他分享 >2.5 数组分配与访问

2.5 数组分配与访问

时间:2023-05-21 19:24:39浏览次数:37  
标签:Expr 数据类型 访问 地址 表达式 数组 2.5 指针

基本原则

对于数据类型T和整型常数N,声明如下:

T A[N];

起始位置表示为xa。这个声明有两个效果。首先,它在内存中分配一个L·N字节的连续区域,这里L是数据类型T的大小(单位为字节)。其次,它引入了标识符A,可以用A来作为指向数组开头的指针,这个指针的值就是xa。可以用0~N-1的整数索引来访问该数组元素。数组元素i会被存放在地址为xa+L·i的地方。 

指针运算

C语言允许对指针进行运算,而计算出来的值会根据该指针引用的数据类型的大小进行伸缩。也就是说,如果p是一个指向类型为T的数据的指针,p的值为xp,那么表达式p+i的值为xp+L·i,这里L是数据类型T的大小。

单操作数操作符‘&’和‘*’可以产生指针和间接引用指针。也就是,对于一个表示某个对象的表达式Expr,&Expr是给出该对象地址的一个指针。对于一个表示地址的表达式AExpr,*AExpr给出该地址处的值。因此,表达式Expr与*&Expr是等价的。可以对数组和指针应用数组下标操作。数组引用A[i]等同于表达式*(A+ i)。它计算第i个数组元素的地址,然后访问这个内存位置。

 

 

标签:Expr,数据类型,访问,地址,表达式,数组,2.5,指针
From: https://www.cnblogs.com/LCAB/p/17418996.html

相关文章

  • 阿里云对象存储OSS————跨域资源共享(CORS)(m3u8 无法加载m3u8:跨域访问被拒绝)...
    今天在做视频直播录像的时候,添加一个录制APP的.M3U8文件到OSS的一个test文件中存储,结果是访问不到了:提示:无法加载m3u8:跨域访问被拒绝!!!!!项目代码测试地址:https://github.com/Tinywan/ThinkPhpStudy阿里云帮助文档:https://help.aliyun.com/document_detail/31928.html......
  • 2.索引数组和关联数组,求随机数,递归调用
    总结索引数组和关联数组,字符串处理,高级变量使用及示例。数组1.数组介绍变量:存储单个元素的内存空间数组;存储多个元素的连续的内存空间,相当于多个变量的集合。数组名和索引索引的编号从0开始,属于数组索引索引支持自定义的格式,而不仅是数值格式,即为关联索引。Bash的数组支持稀疏格......
  • Nodejs(七)-跨域访问
     今天在使用ajax(http://localhost:8080%EF%BC%89%E8%B0%83%E7%94%A8nodejs%E5%86%99%E7%9A%84restfulAPI(http://localhost:3000%EF%BC%89%E6%97%B6%EF%BC%8C%E6%8A%A5%E4%BA%86%E5%A6%82%E4%B8%8B%E4%B8%80%E4%B8%AA%E9%94%99%E8%AF%AF%EF%BC%9AXMLHttpRequestcannotloadhttp:......
  • php 操作数组 (合并,拆分,追加,查找,删除等)
    1.合并数组array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:Php代码1.arrayarray_merge(array这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组......
  • 请在微信客户端打开链接:火狐浏览器模拟微信浏览器内核教程 ,用chrome模拟微信浏览器访
    背景:微信浏览器能访问,出现,请在微信客户端打开链接。useragentswitcherforfirefox:https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/FF越来越不行了,下载都下载不下来~useragentswitcher1.0.34中文版forchrome:http://www.pc6.com/soft/FireFox_133175.h......
  • C#学习笔记 -- 对象初始化语句、索引器、访问器的修饰符
    1、对象初始化语句扩展语法有如下两种扩展语法,第一种当类中没有声明构造器或者声明了无参构造器才能用第二种当类中声明了有参构造器才能用newExampleClass{FieldOrProp=InitProp,FieldOrProp=InitProp,...};newExampleClass(ArgList){FieldOrProp=I......
  • 函数传参类型为数组时,int*和char*的区别
    1.现象(1)假设有一个int型数组,我们先用int*给函数传参#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>voidtest(int*arr){ arr[1]=8;}intmain(){ intarr[]={7,3,4,6,8,9,1,5,2,10};test(arr); printf("%d\n",arr[0]); printf("%d",arr......
  • 构建乘积数组
    classSolution{public:vector<int>multiply(constvector<int>&nums){intn=nums.size();if(n==0)returnvector<int>();vector<int>q(n,1);for(inti=1,t=nums[0];i<n;i++)//t记录前......
  • 一维 数组
    /*数组什么是数组:就是帮助我们更好的管理和使用数据数组的作用:帮助我们存储一组相同类型的数据数据的定义:类型名变量名[数字]括号里的数字表示:当前这个数组能够帮助我们存储的数据个数*///一维数组初始化第一种方式#include<stdio.h>intmain(){ ......
  • 类 方法中实现查找某元素是否在数组中的操作
    publicclassImoocStudent{publicbooleancontains(int[]arr,intelement){booleanresult=false;for(intvalue:arr){if(value==element){result=true;break;}......