使用 void 函数更改 const char
Changing a const char with a void function
我试图理解以下代码以及函数、void 和 char 如何协同工作。我想知道是否可以通过编辑 void 函数将 char 输出从 'a' 更改为 char 'b'?我已尝试 void foo(char *x) { *x = 'b';}
,但我收到一条错误消息 'core dumped',我对此感到困惑。
如果无法更改 const char ch = 'a';
值,您将如何更改 char ch = 'a'
的值?
谢谢~
#include <stdio.h>
void foo(char x) {
x = 'b';
}
int main() {
const char ch = 'a';
foo(ch);
printf("ch = %c", ch);
return 0;
}
不,仅通过更改功能是不可能做到这一点的。需要改函数取指针,改调用者传变量地址,改变量为非const
.
#include <stdio.h>
void foo(char *x) {
*x = 'b';
}
int main() {
char ch = 'a';
foo(&ch);
printf("ch = %c", ch);
return 0;
}
我试图理解以下代码以及函数、void 和 char 如何协同工作。我想知道是否可以通过编辑 void 函数将 char 输出从 'a' 更改为 char 'b'?我已尝试 void foo(char *x) { *x = 'b';}
,但我收到一条错误消息 'core dumped',我对此感到困惑。
如果无法更改 const char ch = 'a';
值,您将如何更改 char ch = 'a'
的值?
谢谢~
#include <stdio.h>
void foo(char x) {
x = 'b';
}
int main() {
const char ch = 'a';
foo(ch);
printf("ch = %c", ch);
return 0;
}
不,仅通过更改功能是不可能做到这一点的。需要改函数取指针,改调用者传变量地址,改变量为非const
.
#include <stdio.h>
void foo(char *x) {
*x = 'b';
}
int main() {
char ch = 'a';
foo(&ch);
printf("ch = %c", ch);
return 0;
}