请教:C语言中,如何确定整个二维数组的大小

Python016

请教:C语言中,如何确定整个二维数组的大小,第1张

C语言中的二维数组是“一维数组的数组”

向函数中传递的时候,最外层的数组直接翻译成指针,传递时传递其首地址,数组是传不进去的。

所以

s是指针,sizeof(s) = 4

*s是一个长度为16个char的一维数组,长度是16。

定义数组时在中括号内写上代表长度的数字,定义一维数组和二维数组是一样的。

注意长度是直接用数字大小来代表,而索引时是从0开始算的!

例如:

#include<stdio.h>

main(){

int a[5]//定义一个长度为5的一维数组a

int b[5][6]//定义一个5行6列的二维数组b

}

在定义数组时可以不定义长度,可以由编译器来决定,只要在定义时赋值就可以了,这时括号内可以不写数值。

例如:

#include<stdio.h>

main(){

int a[] = {0,1,2,3,4}//定义一个长度为5的数组,内容为0,1,2,3,4

}

你可能还不是很了解,参数传递的形式,值传递,地址传递,引用传递(c++特性),而数组的传递形式就是一个地址传递,那么array的大小是4,他是一个指针,楼上说的很对。a[0]就等于是a+0,也指向的第一片地址,你第一片地址内有两个int类型数据,所以是8,。那么4/8都是整形,结果就整形,也就是0.