【发布时间】:2018-09-08 21:09:26
【问题描述】:
如何更改在 C 中作为参数传递的变量的值? 我试过这个:
void foo(char *foo, int baa){
if(baa) {
foo = "ab";
} else {
foo = "cb";
}
}
然后调用:
char *x = "baa";
foo(x, 1);
printf("%s\n", x);
但它打印baa 为什么?
提前致谢。
【问题讨论】:
-
如果(咩)?它不是布尔值,这在 c 中是否合法?
-
@Induster C 中没有布尔类型。所有布尔逻辑都是用整数完成的。
-
@Phonon,错了。从 C99 开始,该语言将
_Bool作为原始类型,bool在“stdbool.h”中。 -
同样,C 中的布尔比较仍然简单地检查零等价;虽然 _Bool 有许多实现,但它通常只是一个整数字,具有受限的零或一值。
标签: c parameter-passing