首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么编译器将C的数组作为函数参数忽略?

为什么编译器将C的数组作为函数参数忽略?
EN

Stack Overflow用户
提问于 2014-10-14 02:55:28
回答 4查看 232关注 0票数 1

我知道在C中,如果我们要写:

代码语言:javascript
运行
AI代码解释
复制
void myFunction(int x[30]) // 30 is ignored by the compiler

void myFunction(int x[][30]) // 30 is not ignored here but if I put say '40' in the first dimension
                             // it would be ignored.

为什么编译器会忽略第一个维度?

EN

回答 4

Stack Overflow用户

发布于 2014-10-14 03:00:27

代码语言:javascript
运行
AI代码解释
复制
void myFunction(int x[30])  

等同于

代码语言:javascript
运行
AI代码解释
复制
void myFunction(int *x)  

也就是说,当数组被用作函数的参数时,编译器将数组名称视为指向数组第一个元素的指针。在这种情况下,第一维的长度是没有用的。

这样,您必须显式地将数组的大小传递给函数。

票数 3
EN

Stack Overflow用户

发布于 2014-10-14 03:22:34

在函数参数声明的上下文中,T a[]T a[N]都被解释为T *a;也就是说,这三个函数都将a声明为指向T的指针。同时,除非是sizeof的操作数或一元&运算符,否则“T的N元素数组”类型的表达式将被转换为“指向T的指针”类型的表达式,其值将是数组的第一个元素的地址。

这并不是说这个维度被忽略了,而是它在这个上下文中没有意义。

票数 3
EN

Stack Overflow用户

发布于 2014-10-14 03:05:59

由于C函数不检查数组引用是否在边界内,并且它不为数组引用分配任何空间,因此维数在那里没有任何用处。它只计算从指针(数组的开始)的偏移量,并且它已经知道如何计算(基于int的大小)。

当您指定多个维度时,它只需要知道该维度,这样它就可以计算数组引用的正确偏移量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26351931

复制
相关文章
aws生产实践-22:aws上创建openvpn
https://github.com/hepyu/openvpn-install/blob/master/openvpn-install.sh
千里行走
2022/02/10
1.7K0
aws生产实践-22:aws上创建openvpn
AWS WAF bypass
x="=='='onmouseover=confirm`xss` style="display:block;width:1000px;height:1000px;background:red">
Khan安全团队
2023/02/23
1.3K0
AWS WAF bypass
AWS alb 了解
Elastic Load Balancing 在一个或多个可用区中的多个目标(如 EC2 实例、容器和 IP 地址)之间自动分配传入的流量。它会监控已注册目标的运行状况,并仅将流量传输到运行状况良好的目标。Elastic Load Balancing 根据传入流量随时间的变化对负载均衡器进行扩展。它可以自动扩展来处理绝大部分工作负载。
heidsoft
2022/01/17
2.3K0
AWS alb 了解
AWS 再次宕机
亚马逊AWS今天再次遭遇故障,这起事件影响了众多在线服务,包括 Twitch、Zoom、PSN、Xbox Live、Doordash、Quickbooks Online和Hulu等。 据AWS的状态页面显示,这起故障始于太平洋标准时间上午7点43分左右,影响了US-WEST-1和US-WEST-2这两个区域。 据报道 ,这起事件已造成了严重的互联网连接问题,导致一大批在线平台和网站随之瘫痪。 AWS的工程师们正在努力搞清楚这次故障背后的根本原因,并表示他们已经采取措施,以恢复互联网连接。 AWS状态页面显示
云头条
2022/03/18
8260
AWS医疗NLP
命名实体识别(Named Entity Recognition,NER)是目前最流行和最有需求的自然语言处理任务之一。随着NER的扩展,它也变得更加特定于领域。
磐创AI
2021/09/03
1.5K0
[工作随笔]Python 和 CDK的aws-route53那些事
AWS CDK,与使用 YAML(或 JSON)的声明式方法相比,CDK 允许您命令式声明基础设施。主要语言为 TypeScript,同时也支持另外几种语言。
DriverZeng
2022/10/31
9750
[工作随笔]Python 和 CDK的aws-route53那些事
laravel使用aws笔记
一、引入composer "aws/aws-sdk-php": "^3.137", "league/flysystem-aws-s3-v3": "^1.0" 二、添加配置 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), #key 'secret' => env('AWS_SECRET_ACCESS_KEY'), #秘钥 're
苦咖啡
2020/05/12
1.3K0
AWS 架构柱子学习
在设计工作负载时,您会基于您的业务环境在各个支柱之间做出权衡。这些业务决策可以确定设计优先事项。您可以优化您的架构,例如在开发环境中以牺牲一部分可靠性来降低成本;而对于关键业务生产环境,您可以通过增加成本来提高可靠性。在电子商务解决方案中,性能可能会影响收入和客户的购买偏好。对于安全性和卓越运营,一般不会在它们和其他支柱之间进行权衡。
heidsoft
2022/01/17
5660
AWS 架构柱子学习
aws跨域问题
http://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/cors.html
零式的天空
2022/03/22
9380
Deploy TiDB on AWS EKS
how to deploy a TiDB cluster on AWS Elastic Kubernetes Service (EKS) ?
杨漆
2021/03/09
1.1K0
Deploy TiDB on AWS EKS
AWS Lambda 快速入门
但以上的几个方法都需要关注服务器的存储和计算资源,以便随时调整以满足更高的性能,并且高并发的请求也是分时段的,配置了更高性能的服务器在访问量变低的时候也是资源浪费。
goodspeed
2020/12/22
2.8K0
AWS Lambda  快速入门
AWS lambda and dynamodb with Java
使用aws lambda已经一年多了,下面使用java构建一个简单的lambda服务,大家可以自己扩展想要的功能,废话不多说,开始吧。
wblearn
2020/09/16
1K0
逆向 AWS API 设计
云计算爱好者
2017/12/20
9690
AWS攻略——一文看懂AWS IAM设计和使用
一言以蔽之,AWS IAM就是为了管理:谁 (不)可以 对什么 做什么。(转载请指明出于breaksoftware的csdn博客)
方亮
2022/09/30
1.2K0
AWS攻略——一文看懂AWS IAM设计和使用
AWS CloudFront 如何设置 TTL
通常默认情况下 AWS CloudFront 的刷新时间是 24 个小时,可以理解就是如果你更新了 S3 的内容,你可能需要等 24 小时才能看到变化。
HoneyMoose
2022/01/06
1.4K0
【AWS系列】镭速RaySync VS FTP (8)- AWS悉尼到腾讯云广州
Windows Server: https://www.raysync.cn/support_for_windows.html
云语科技
2018/03/07
1.1K0
【AWS系列】镭速RaySync VS FTP (8)- AWS悉尼到腾讯云广州
【AWS系列】镭速RaySync VS FTP (10)- AWS韩国到腾讯云广州
Windows Server: https://www.raysync.cn/support_for_windows.html
云语科技
2018/03/07
1.1K0
【AWS系列】镭速RaySync VS FTP (10)- AWS韩国到腾讯云广州
亚马逊AWS 进军 WAN 市场:发布 AWS Cloud WAN 正式版
2022年7月14日,AWS宣布推出AWS Cloud WAN的正式版,这是一种新的托管服务,可连接本地数据中心、托管设施、分支机构和AWS云区域,以简化全球网络的运营。 借助AWS Cloud WAN,企业可以使用中央管理仪表板来定义网络配置、查看全球网络的运行状况,并自动执行日常配置和安全任务。 这家云巨头于2021年12月在拉斯维加斯举行的AWS re:Invent大会上首次介绍了AWS Cloud WAN。 AWS已经在帮助企业使用Amazon Virtual Private Cloud、AWS
云头条
2022/07/19
4250
亚马逊AWS 进军 WAN 市场:发布 AWS Cloud WAN 正式版
AWS培训:Service Catalog使用
AWS Service Catalog利用,组织可以创建和管理获准用于的 IT 服务的目录。AWS. 这些 IT 服务可以包含所有内容,从虚拟机映像、服务器、软件、数据库等到完整的多层应用程序架构一应俱全。
heidsoft
2022/01/17
5840
AWS培训:Service Catalog使用
AWS EKS metrics not working issue
AWS EKS metrics by default not installed and after installation, we can't get the metrics. The problem is caused by internal IP, so fixing the deployment.yaml by adding
贺思聪
2020/04/30
5420
AWS EKS metrics not working issue

相似问题

运行对接器-与Python的“fabric”组合

40

多行对接器运行命令

23

Catel与对接系统一起使用(例如Avalon对接)

12

在运行过程中使用对接器

30

Docker编写和rabbitmq对接器图像插件

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档