我认为我对指针的理解有误解?
根据我的理解,int * twenties意味着 twenties 是一个指针int。
那么对于*twenties = dollars/20;,*twenties这里指的是指针的值吗?
在pay_amount(money, &twenties, &tens, &fives, &ones);中,指针twenties存储&twenties在函数中的地址pay_amount?二十多岁的人不会printf("$20 bills: %d\n", twenties);打印出地址而不是价值吗?
#include <stdio.h>
void pay_amount(int dollars, int *twenties, int *tens, int *fives, int *ones);
int main(void) {
int money = 0, twenties, tens, fives, ones;
printf("Enter a dollar amount: ");
scanf("%d", &money);
pay_amount(money, &twenties, &tens, &fives, &ones);
printf("$20 bills: %d\n", twenties); // why isnt not *twenties??? I got an error if I put *twenties
printf("$10 bills: %d\n", tens);
printf(" $5 bills: %d\n", fives);
printf(" $1 bills: %d\n", ones);
return 0;
}
void pay_amount(int dollars, int *twenties, int *tens, int *fives, int *ones) {
*twenties = dollars / 20;
dollars -= *twenties * 20;
*tens = dollars / 10;
dollars -= *tens * 10;
*fives = dollars / 5;
dollars -= *fives * 5;
*ones = dollars;
}