如何从C中的另一个函数调用一个函数的值



如何将new_accnameaddress调用到view_list函数中。我想在view_list函数中显示要打印的姓名和地址吗?

#include <stdio.h>
#include <stdlib.h>
#define MAX 15
int new_acc();
int view_list();    
int main(){
int one=1, two=2, three=3, four=4, five=5, six=6, seven=7, new_account, list; char choice[MAX];
printf("%d. Create new accountn",one);
printf("%d. View customers listn",two);
printf("Enter you choice: ");
fgets(choice, MAX, stdin);
if (choice[0]-'0'==one){new_account = new_acc();}
else if(choice[0]-'0'==six){list = view_list();}
else{printf("This is wrong");}
return 0;}
int new_acc(){
char name[15], address[30];  
printf("Enter your name: ");
fgets(name, sizeof name, stdin);
printf("Enter your Address: ");
fgets(address, sizeof address, stdin);
return 0;}
int view_list(){
printf("Here is your name: %d",name);
printf("Here is your name: %d",address);
return 0;}

您似乎刚刚开始学习C语言。

C语言(或任何支持函数范式的编程语言(的一个非常基本的概念是,每个函数都有自己的空间。

在一个非常基本的层面上,我会说,你需要认为每个函数都是一个单独的块,一个块不能窥视另一个块,但它们只能调用它们或为它们提供一些值,但它们不能共享或查看彼此内部。

因此,可能有两种解决方案,要么将值作为参数传递给另一个函数,要么将这些变量放在两个函数都可以共享的地方(全局变量(。

/**
* This is the functional approach.
*
* Since name and address were arrays so, we need pointers to supply them here.
* and in the `printf()` I used "%s", it is used to print strings. "%d" prints
* integers, numbers only 
*/
int view_list(char* name, char* address) {
printf("Here is your name: %s", name);
printf("Here is your name: %s", address);
return 0;
}

/**
* This is the procedural approach.
*/
char name[15], address[30];
int new_acc() {
// Instead of declaring them here.
// declare them in globally.
//
// char name[15], address[30];
printf("Enter your name: ");
fgets(name, sizeof name, stdin);
printf("Enter your Address: ");
fgets(address, sizeof address, stdin);
return 0;
}
int view_list() {
printf("Here is your name: %s", name);
printf("Here is your name: %s", address);
return 0;
}

最新更新