我学习 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);
}
最佳答案
你需要
int* p_number = &number;
和
hello(p_number);
在调用站点。
即将 p_number
设置为 number
的地址。并且一定要调高编译时的警告级别并阅读它们!在 hello
中维护指针有相当多的冗余;大概这是为了练习?
关于c - 怎么了?为什么指针保持不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49651520/