任何人都知道如何将3个char值从函数返回到主要部分?三个字符必须由用户输入并制成金字塔。我被告知使用指针,但不明白如何做,并不断收到错误。然后必须在主函数中使用这3个字符来制作金字塔形状。
答案 0 :(得分:3)
为了扩展我的评论,基本上有两种方法我建议解决这个问题,其中第一种有两种变体(取决于用例和要求)。
将一个数组作为参数传递给函数,并将其填入。根据需要,它有两个变体:
只需使用普通数组
void doSomething(char *array)
{
array[0] = 'A';
array[1] = 'B';
array[2] = 'C';
}
像
一样打电话char array[3];
doSomething(array);
printf("First character is '%c'\n", array[0]);
第二个变体基本上与上面相同,但将数组视为(以null结尾的)字符串:
void doSomething(char *array)
{
strcpy(array, "ABC");
}
像
一样打电话char array[4]; // One extra for terminator
doSomething(array);
printf("String is '%s'\n", array);
返回多个值的第二种方法是使用结构:
struct Data
{
char a;
char b;
char c;
};
struct Data doSomething(void)
{
struct Data data;
data.a = 'A';
data.b = 'B';
data.c = 'C';
// or struct Data data = { 'A', 'B', 'C' };
return data;
}
像
一样打电话struct Data data = doSomething();
printf("First character is '%c'\n", data.a);
答案 1 :(得分:1)
我写了一个指针示例,我希望它有用:
main(){
int a,b,c;
doSomething(&a,&b,&c);
}
void doSomething(int *x, int *y, int *z){
//example
*x = 5;
*y = 7;
*z = 10;
}