C语言中的数组长度

问题描述 投票:0回答:4

我是以前的C#程序员,关于C语言,有些事情我无法理解(特别是,我使用C99标准进行编码)

我被告知无法用C知道数组的长度,我需要将其长度作为参数发送给我愿意使用的函数,但是为什么呢?例如,在C#中,我们可以键入array_name.lenght

加上二维数组,为什么必须指定数组的列数?我是说为什么要这样做:

void test1 (int arr[][m])
{
}

虽然不是这样:

void test2 (int arr[][])
{
}
c arrays function parameters c99
4个回答
4
投票

例如,在C#中,我们可以键入array_name.length


2
投票

在大多数编程语言中,数据类型为抽象


0
投票

在C中,将作为参数传递给函数的数组转换为指向数组第一个元素的指针。数组的大小不会隐式传递给函数。您,程序员,有责任将正确的数组大小传递给您的函数。


0
投票

C是一种过程语言(比大多数过程语言更接近汇编语言),而不是面向对象的语言。 IOW,Algol(和C)早于Smalltalk(和C#),Smalltalk教给我们一些重要的课程。

© www.soinside.com 2019 - 2024. All rights reserved.