char[]数组作为函数参数传递问题

时间:2022-12-12 21:27:21
有确定数量的字符数组,比如 char aaa[4] 里面有4个元素

需要在foo函数中操作这个字符数组中的元素,如何传递aaa这个字符数组呢,比如

void foo(参数不知道如何写)
{
   aaa[0]=0x20;
   aaa[1]=0x40;
   aaa[2]=0x20;
   aaa[3]=0x40;

}

7 个解决方案

#1


补充下,开始代码是在  

void getComm()
{
   char aaa[4]; 
   aaa[0]=0x00;
   aaa[1]=0x00;
   aaa[2]=0x00;
   aaa[3]=0x00;
   foo(参数不知道如何写);
}

下面的bbb的是通过foo函数参数传递过来的aaa数组

void foo(参数不知道如何写)
{
  bbb[0]=0x20;
  bbb[1]=0x40;
  bbb[2]=0x20;
  bbb[3]=0x40;
}






}

#2


void getComm()
{
  char aaa[4];  
  aaa[0]=0x00;
  aaa[1]=0x00;
  aaa[2]=0x00;
  aaa[3]=0x00;
  foo(aaa);
}


void foo(char* bbb)
{
  bbb[0]=0x20;
  bbb[1]=0x40;
  bbb[2]=0x20;
  bbb[3]=0x40;
}

#3


void foo(char *aaa[4])
{
  *aaa[0]=0x20;
  *aaa[1]=0x40;
  *aaa[2]=0x20;
  *aaa[3]=0x40;

}
是这意思吗

#4


就用指针就是了,以前定义过忘了,反正就算定义了编译器也不会给你检查的,编译器还是按照指针处理的,不会检查数组长度的

#5


void fa(char a[])
{
printf("%c\n",a[0]);
printf("%c\n",a[1]);
printf("%c\n",a[2]);
printf("%c\n",a[3]);
}
main()
{
char a[4]={'1','2','3','4'};
fa(a);
}

#6


* 直接传指针 传个长度

#7


void foo(char(aaa[4]))

#1


补充下,开始代码是在  

void getComm()
{
   char aaa[4]; 
   aaa[0]=0x00;
   aaa[1]=0x00;
   aaa[2]=0x00;
   aaa[3]=0x00;
   foo(参数不知道如何写);
}

下面的bbb的是通过foo函数参数传递过来的aaa数组

void foo(参数不知道如何写)
{
  bbb[0]=0x20;
  bbb[1]=0x40;
  bbb[2]=0x20;
  bbb[3]=0x40;
}






}

#2


void getComm()
{
  char aaa[4];  
  aaa[0]=0x00;
  aaa[1]=0x00;
  aaa[2]=0x00;
  aaa[3]=0x00;
  foo(aaa);
}


void foo(char* bbb)
{
  bbb[0]=0x20;
  bbb[1]=0x40;
  bbb[2]=0x20;
  bbb[3]=0x40;
}

#3


void foo(char *aaa[4])
{
  *aaa[0]=0x20;
  *aaa[1]=0x40;
  *aaa[2]=0x20;
  *aaa[3]=0x40;

}
是这意思吗

#4


就用指针就是了,以前定义过忘了,反正就算定义了编译器也不会给你检查的,编译器还是按照指针处理的,不会检查数组长度的

#5


void fa(char a[])
{
printf("%c\n",a[0]);
printf("%c\n",a[1]);
printf("%c\n",a[2]);
printf("%c\n",a[3]);
}
main()
{
char a[4]={'1','2','3','4'};
fa(a);
}

#6


* 直接传指针 传个长度

#7


void foo(char(aaa[4]))