我学习了一段时间的C编程,我不得不创建一个程序,其中包含一个函数void hello()显示单词'Hello :)'和数字,调用函数hello()的时间。下面的代码显示'Hello',但函数调用的数量保持不变。我只是想知道,出了什么问题以及它为什么不能正常工作。
#include <stdio.h>
int main(void) {
void hello(int *p_number);
int number = 1, i;
int* p_number = number;
for (i = 1; i <= 10; i++){
hello(&p_number);
printf("Number in cyclus = %d\n", number);
number++;
}
return 0;
}
void hello(int *p_number){
printf("number of calling = %d, Hello :)\n", *p_number);
}
答案 0 :(得分:2)
你需要
int* p_number = &number;
和
hello(p_number);
在主叫站点。
即。将p_number
设置为number
的地址。并打开编译上的警告级别并阅读它们!在hello
中维护指针有相当多的冗余;大概这是锻炼吗?
答案 1 :(得分:0)
#include <stdio.h>
void hello(int *p_number);
int main(void) {
int number = 1, i;
int *p_number = &number;
for (i = 1; i <= 10; i++) {
hello(p_number);
printf("Number in cyclus = %d\n", number);
number++;
}
return 0;
}
void hello(int *p_number) {
printf("number of calling = %d, Hello :)\n", *p_number);
}
将指针设置为指向数字地址,将指针地址传递给函数。