gpt4 book ai didi

C++ 指向函数参数指针的指针

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:34 25 4
gpt4 key购买 nike

以下 C++ 代码无法按我的意愿运行。

#include <string>
#include <iostream>

int Pointer_Function(char* _output);
int Pointer_to_Pointer_Function(char** text );

int main() {

char* input = "This";
printf("1. %s \n", input);
Pointer_Function(input);
printf("5. %s \n", input);

int test;
std::cin >> test;
}

int Pointer_Function(char* _output) {
_output = "Datenmanipulation 1";
printf("2. %s \n", _output);

Pointer_to_Pointer_Function(&_output);

printf("4. %s \n", _output);
return 0;
}

int Pointer_to_Pointer_Function(char** text ) {

printf("3. %s \n", *text);
char* input = "HalliHallo";

text = &input;
printf("3.1. %s \n", *text);
return 0;
}

我希望 printf 5 的结果是 HalliHallo 而不是 Datenmanipulation。因为数据 text 必须因 &input 而改变。

输出:

1.This
2. Datenmanipulation 1
3. Datenmanipulation 1
3.1 HalliHallo
4. Datenmanipulation 1
5. This

预期结果:

1.This
2. Datenmanipulation 1
3. Datenmanipulation 1
3.1 HalliHallo
4. HalliHallo
5. HalliHallo

如何将指向函数的指针作为参数?为什么我的代码不起作用?

最佳答案

分配时:

text = &input;

你只是在改变局部变量text,你并没有改变它指向的指针的内容。你应该这样做:

*text = input;

这将打印:

4. HalliHallo

你不能让它打印

5. HalliHallo

因为 Pointer_Function 只是接受一个指向字符串的指针,而不是一个指向变量的指针,所以它不能改变调用者的变量。

您还应该更改所有声明以指定 const char*const char**,因为您正在将指针分配给文字字符串。这是完整的工作代码:

#include <string>
#include <iostream>

int Pointer_Function(const char* _output);
int Pointer_to_Pointer_Function(const char** text );

int main() {

const char* input = "This";
printf("1. %s \n", input);
Pointer_Function(input);
printf("5. %s \n", input);

int test;
std::cin >> test;
}

int Pointer_Function(const char* _output) {
_output = "Datenmanipulation 1";
printf("2. %s \n", _output);

Pointer_to_Pointer_Function(&_output);

printf("4. %s \n", _output);
return 0;
}

int Pointer_to_Pointer_Function(const char** text ) {

printf("3. %s \n", *text);
const char* input = "HalliHallo";

*text = input;
printf("3.1. %s \n", *text);
return 0;
}

输出:

1. This 
2. Datenmanipulation 1
3. Datenmanipulation 1
3.1. HalliHallo
4. HalliHallo
5. This

关于C++ 指向函数参数指针的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20952046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com