【发布时间】:2018-03-12 11:19:14
【问题描述】:
您好,我正在学习指针,所以我创建了一个计算器。 我设法从函数返回值和指针,但通过全局声明它们。如何在本地声明它们?
#include <stdio.h>
#include <stdlib.h>
所有功能的声明
int Addition();
int Subtraction();
int Devision();
int Multiplication();
全局变量的声明,我想在本地声明它们
int p;
int n;
int *r=&n;
int *b=&p;
主函数的开始
int main()
{
int g,s;
while (1)
{
printf("Please choose the Arithmetic operation: \n");
printf("Addition-> 1 \nSubtraction-> 2 \nDevision-> 3 \nMultiplication-> 4 \nExit-> 0\n ");
scanf("%d",&g);
用户通过输入一个数字(1、2、3、4 或 0 表示退出)来选择算术运算(函数)
if (g==1)
{
s=Addition(r,b);
printf("The addition result is %d+%d=%d",*r, *b, s);
}
else if (g==2)
{
s=Subtraction(r,b);
printf("The Subtraction result is %d-%d=%d",*r, *b, s);
}
else if (g==3)
{
s=Devision(r,b);
printf("The Devision result is %d/%d=%d",*r, *b, s);
}
else if (g==4)
{
Multiplication(r,b);
printf("The Multiplication result is %d/%d=%d",*r, *b, s);
}
else
{
break;
}
return 0;
}
}
主函数结束。 以下是所有其他功能
Addition()
{
int x;
printf("Ennter first nr: ");
scanf("%d",&n);
printf("Ennter second nr: ");
scanf("%d",&p);
x=n+p;
return x;
}
Subtraction()
{
int x;
printf("Ennter first nr: ");
scanf("%d",&n);
printf("Ennter second nr: ");
scanf("%d",&p);
x=n-p;
return x;
}
Devision()
{
int x;
printf("Ennter first nr: ");
scanf("%d",&n);
printf("Ennter second nr: ");
scanf("%d",&p);
x=n / p;
return x;
}
Multiplication()
{
int x;
printf("Ennter first nr: ");
scanf("%d",&n);
printf("Ennter second nr: ");
scanf("%d",&p);
x=n * p;
return x;
}
【问题讨论】:
-
请对您的代码应用适当的缩进以使其更具可读性。
-
并详细说明您的问题。有点不清楚。
-
我在您的代码中没有看到任何需要使用全局变量的内容。是什么让您认为您需要使用它们?很明显,您已经知道如何声明和使用局部(非全局)变量。
-
我在全球范围内使用它们,因为我更容易打电话和阅读它们。这就是为什么我想学习如何在本地声明它们。
-
这里的第一步是烧掉你的 C 书/老师,然后重新学习函数是如何工作的。在接受指针之前这样做。
标签: c pointers global-variables local-variables