C 使用def结构变量类型的条件语句时出现问题
我在使用def结构变量类型的决策语句时遇到问题, 而且我不能在任何地方声明变量等于零 这是结构图C 使用def结构变量类型的条件语句时出现问题,c,struct,typedef,conditional-statements,conditional-operator,C,Struct,Typedef,Conditional Statements,Conditional Operator,我在使用def结构变量类型的决策语句时遇到问题, 而且我不能在任何地方声明变量等于零 这是结构图 typedef struct{ int wallet; int account; }MONEY; 它主要被宣布为货币(但对于im具有的功能 它的问题(m) 当我尝试做这样的事情时 *m.wallet = *m.wallet - depositAmmount; 还是这个 *m.wallet = 0; 它给了我一个语法错误,说表达式必须有类类型。 我该怎么办?在函数中,我尝试声明i
typedef struct{
int wallet;
int account;
}MONEY;
它主要被宣布为货币代码>(但对于im具有的功能
它的问题(m)
当我尝试做这样的事情时
*m.wallet = *m.wallet - depositAmmount;
还是这个
*m.wallet = 0;
它给了我一个语法错误,说表达式必须有类类型。
我该怎么办?在函数中,我尝试声明int*m.wallet=0代码>甚至<代码>日期*m钱包代码>无效
下面是整个函数
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define clear system("clear")
#define pause system("pause")
void banking(MONEY *m){
int userChoice = 0;
int withdrawAmmount = 0;
int depositAmmount = 0;
do{
userChoice = 0;
withdrawAmmount = 0;
depositAmmount = 0;
displayBankMenu(*m);
scanf("%i", &userChoice);
clear;
switch (userChoice) {
case 1:
printf("How much would you like to Deposit?: $");
scanf("%i", &depositAmmount);
if(depositAmmount <= *m.wallet){
*m.wallet = *m.wallet - depositAmmount;
*m.account = *m.account + depositAmmount;
}else{
printf("You do not have sufficient funds for this transaction.");
pause;
}
break;
case 2:
printf("How much would you like to withdraw?: $");
scanf("%i", &withdrawAmmount);
if(withdrawAmmount <= *m.account){
*m.account = *m.account - withdrawAmmount;
*m.wallet = *m.wallet + withdrawAmmount;
} else{
printf("You do not have sufficient funds for this transaction.");
pause;
}
userChoice = 0;
break;
}
}while(userChoice != 3);
} //end banking
#包括
#包括
#包括
#包括
#定义清除系统(“清除”)
#定义暂停系统(“暂停”)
无效银行业务(货币*m){
int userChoice=0;
int-numount=0;
int DepositAmount=0;
做{
userChoice=0;
取款数量=0;
存款金额=0;
显示菜单(*m);
scanf(“%i”、&userChoice);
清楚的
开关(用户选择){
案例1:
printf(“您想存多少?:$”;
scanf(“%i”和“存款金额”);
如果要访问指向结构的指针的成员,请使用->
运算符
m->wallet = m->wallet - depositAmmount;
m->wallet = 0;
运算符的优先级高于*
取消引用,因此需要对该表达式使用括号来获取结构成员
(*m).wallet = (*m).wallet - depositAmmount;
(*m).wallet = 0;
要访问指向结构的指针的成员,请使用->
运算符
m->wallet = m->wallet - depositAmmount;
m->wallet = 0;
运算符的优先级高于*
取消引用,因此需要对该表达式使用括号来获取结构成员
(*m).wallet = (*m).wallet - depositAmmount;
(*m).wallet = 0;
结构成员运算符
的优先级高于取消引用运算符*
*m.wallet = 0;
与
*(m.wallet) = 0;
这意味着获取结构m
的成员wallet
,然后将其解引用,假设它是指针。但是m
是指向结构的指针,而不是结构本身。因此,您应该首先解引用指针以获取结构,然后使用
运算符获取wallet
成员
(*m).wallet = 0;
您还可以使用更方便的箭头运算符->
作为
m->wallet = 0;
它们是相同的。结构成员运算符
的优先级高于取消引用运算符*
*m.wallet = 0;
与
*(m.wallet) = 0;
这意味着获取结构m
的成员wallet
,然后将其解引用,假设它是指针。但是m
是指向结构的指针,而不是结构本身。因此,您应该首先解引用指针以获取结构,然后使用
运算符获取wallet
成员
(*m).wallet = 0;
您还可以使用更方便的箭头运算符->
作为
m->wallet = 0;
它们是一样的。非常感谢!我现在明白了,我会记住第二部分以备将来参考!:)非常感谢!我现在明白了,我会记住第二部分以备将来参考!:)