以下是我的代码: 当我运行它时,我得到以下声明:
X is equal to 1 and k is equal to 1
X is equal to 0 and k is equal to 0
我希望实现的是让两个陈述说明相同的事情(等于1)。我理解我可以在if语句下面分别将整数x和k分别设置为1,但是我想知道在执行函数后如何存储一个值,这样在执行第二个函数后x和k保持等于1功能
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void run_times( int runs);
int main (){
int i;
while ( i <3) {
run_times(i);
printf("Looped\n");
i++;
}
}
void run_times( int runs) {
int *x,k;
if (runs == 0) {
x = &k;
*x = 1;
printf("X is equal to %d and k is equal to%d\n", *x, k);
}
if (runs == 1){
printf("X is equal to %d and k is equal to%d\n", *x, k);
}
提前致谢
答案 0 :(得分:1)
void run_times( int runs) {
static int *x,k;
static
变量意味着变量在调用之间保持其值。
请注意,所请求的代码正在运行未初始化的局部变量,即undefined behavior。所以无论如何它可能会或可能不会工作,IDE一个运行,你想要它没有任何变化! http://ideone.com/X7dqHr
请注意,我们没有static
变量的问题,因为它们被初始化为零。请参阅:Why are global and static variables initialized to their default values?
答案 1 :(得分:0)