重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
内存角度来看,函数的参数是要入栈的,栈区大小决定了参数的个数。一般C语言程序运行时默认1M的栈空间,以int类型的参数来看,1M=1024KB=1024*1024字节,32位系统中int类型占4个字节,所以理论上一个函数最多有262144个int类型的参数。实际中要远远小于这个数,因为应用程序中的局部变量都需要占用栈空间。
创新互联专注于南木林网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供南木林营销型网站建设,南木林网站制作、南木林网页设计、南木林网站官网定制、小程序定制开发服务,打造南木林网络公司原创品牌,更为您提供南木林网站排名全网营销落地服务。
内存角度来看,函数的参数是要入栈的,栈区大小决定了参数的个数。一般C语言程序运行时默认1M的栈空间,以int类型的参数来看,1M=1024KB=1024*1024字节,32位系统中int类型占4个字节,所以理论上一个函数最多有262144个int类型的参数。实际中要远远小于这个数,因为应用程序中的局部变量都需要占用栈空间。
fun函数声明错误,正确是 char fun(char a[20], char b);
int b; 变量 b重复定义,此句去掉。
fun(a[20], e); 函数参数传递错误,正确的是 fun(a, e);
正确代码如下:
#include stdio.h
#includestring.h
int main()
{
char fun(char a[20], char b); // 函数声明错误
char a[20], e, b[200];
// int b; // b重复定义了,此句去掉
gets(a);
scanf("%c", e);
fun(a, e); // a 参数传递错误,正确 fun(a, e)
}
char fun(char a[20], char b)
{
int i;
for (i = 0; i20; i++)
if (a[i] == b)
a[i] = a[i + 1];
return a[20];
}
参数的多少与你的问题的复杂度和解决问题的方式都有一定的关联。如果一个函数处理的问题所需要的参数就是那么多的话,就是合适的,不必修改。
如下修改就完美了!
#includestdio.h
void SCN(int num[100],int *n,int *m);
void MOVE(int num[100],int n,int m);
void PR(int num[100],int n);
int num[100],n,m;
void main()
{
SCN(num,n,m);
MOVE(num,n,m);
PR(num,n);
}
void SCN(int num[100],int *n,int *m)
{
int i; scanf("%d",n);
for(i=0;i*n;i++){
scanf("%d",num[i]);
}
scanf("%d",m);
}
void MOVE(int num[100],int n,int m)
{
int i,tt;
while(m--){
tt=num[n-1];
for(i=n-1;i0;i--){
num[i]=num[i-1];
}
num[0]=tt;
}
}
void PR(int num[100],int n)
{
int i;
for(i=0;in;i++){
printf("%d",num[i]);
}
}