如何返回全局 char* 变量的地址?我必须为一个项目这样做。我必须根据伪代码编写函数,如下所示:
string* get_variable_address();
C 没有字符串,所以我假设 string*
将变成 char**
。我已经尝试了很多东西,但我无法让它发挥作用。我所拥有的看起来像这样:
#include <stdio.h>
char test[100] = "Get my address";
int main(void) {
char** address = return_variable_address();
printf("The address is: %s\n", *address);
return 0;
}
char** return_variable_address() {
return &test;
}
最佳答案
C doesn't have string so I assume string* will become char**
可能不是。 C 中的字符串是字符数组,您可以通过 char*
访问它。因此,您可以相当程度地简化您的程序以获得所需的结果:
#include <stdio.h>
char* return_variable_address (void);
char test[100] = "Get my address";
int main(void) {
char* address = return_variable_address();
printf("The content stored at the address: %s\n", address);
return 0;
}
char* return_variable_address (void) {
return test;
}
请注意,所有这些都是不好的做法 - 避免全局变量。
关于c - 返回全局字符串变量的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43917979/