C语言中函数声明的时候数组长度能否不写? int a[10]; int b(int a[]) 这样

C语言中函数声明的时候数组长度能否不写?
int a[10];
int b(int a[])
这样可以吗我发现写不写不影响运行结果。

可以不写的,定义的时候也可以不写的,因为它接受过来只是数组名,就是一个指针追问

int b(a)这样行吗

还想请教另一个问题
while(......)
{if(*p!='c')num++;
p++;
}这样是p++每次都执行,num++视if而定,还是它们都视if而定

追答

int b(int *a)就是可以的
num++是if决定的,p++是每次都执行

追问

哦谢谢

温馨提示:内容为网友见解,仅供参考
无其他回答

数组在声明的时候可不可以不说明大小,如int a[ ] ;
可以的,但必需与初始化配合,如:int a[] = {1,2,4,6,7,9.10};

c语言中定义一维数组,能全部省略吗? int a[10]={};可以吗?
不可以噢

c语言的数组的中括号中数字能否省略?什么时候可以省略?
在定义数组时同时初始化,括号中数字可省略,如:int a[]={1,2,3,4,5};这个数组大小是5,范围是a[0]到a[4],但是如果你希望定义一个长度是10的数组,但只初始化前5个数据,这时候必须带上数字,如:int a[10]={1,2,3,4,5};这时候a数组一共有10个数字,前5个是1到5,后5个是0...

数组与数组中的一个元素在C语言中都写成比如a[10]这个样子的吗?怎么...
a[10]表示数组只有在初始声明数组的时候,例如:int a[10];声明一个大小为10的数组,数组a的元素表示是从a[0]-a[9].。数组a的第10个元素应该是a[9],不是a[10]。所以你说的数组与数组中的一个元素都写成a[10],这种情况是不可能出现的。够清楚吧,3q给分!

C语言数组的怪事int a=10;int b[a];?
最后,int b[10];定义一个int类型,长度为10,有10个整形元素的数组;int *b[a];是指针数组,即一个数组,其元素均为指针类型数据。 也就是说,指针数组中每一个元素都相当于一个指针变量。其详细形式应该如下: *a[0], ...*a[n]. 每一个数组里面存储的是其指向的地址,即a[i]存储的...

C语言定义一个函数如果含有数组
void min(int a[],int x) \/\/int x是用来标记传过来的数组的长度(即a数组指向的那个数组的长度)。因为你在函数中计算的时候,a只能当做一个指针来用,没有具体的长度,而且你是int 型的,所以没有标准库函数来求你需要计算的数组的长度,所以你就没法计算。void min(int a[],int b[])这...

c语言中数组长度怎么设置?
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...

C语言中a[10][m]是合法的吗?
不合法,C语言规定数组在声明时必须确定地指出数组的大小,因为编译器在编译时要给数组分配确定的内存单元!内存单元的数量不能是变量!

c语言中int a[10]={}合法么?int a[2][3]={0}呢?
int a[10]={}不合法,int a[2][3]={0}合法

C语言问题:int a = 10;与int a(10);两种赋值方式有什么不同?
c语言根本不允许int a(100);c++是因为后来加的类允许 t a(b);这样初始化才允许基本类型如 int 也可以用这种写法,后来发现这种初始化语法让c++的语法分析难度又上了一个台阶,所以现在也不怎么建议使用这种写法

相似回答