我想使用指针技术将char fruit
变量值从Apple
更改为Orange
,任何人都可以帮我解决问题。
这是代码。
#include <iostream>
using namespace std;
int main()
{
char fruit='Apple';
char *ptr_fruit;
ptr_fruit=&fruit;
*ptr_fruit='Orange';
cout<< fruit;
system("PAUSE");
}
答案 0 :(得分:3)
您应该查看C ++的基础知识。并放弃char * for std :: string。无论如何,如果你真的想要使用这种方法,一些提示:
char fruit[50] = "Apple"
答案 1 :(得分:1)
这是你想要的吗?
#include <iostream>
int main()
{
char const *fruit="Apple";
char const **ptr_fruit;
ptr_fruit = &fruit;
*ptr_fruit = "Orange";
std::cout << fruit;
}
答案 2 :(得分:0)
1:你声明一个这样的数组
char Fruit[] = "Apple";
请参阅括号和双引号?
您正在做的是声明一个char变量,因为当您在""
(双引号)中放入某些内容时,当您将其放入''
时(单引号),它将被视为字符串),它被编译为字符。
2:当你说*ptr_fruit
时,编译器会将其视为ptr_fruit[0]
。所以你也会在那一行得到错误。
答案 3 :(得分:0)
你可能想要:
const char* fruit = "Apple";
const char** ptr_fruit = &fruit;
*ptr_fruit = "Orange"; // now fruit is "Orange"
但我认为通过引入typedef
可以更容易理解以下内容,以避免可能引起混淆的**
。
using c_string = const char*; // or `typedef const char* c_string;`
c_string fruit = "Apple";
c_string* ptr_fruit = &fruit;
*ptr_fruit = "Orange"; // now fruit is "Orange"
两个代码段是等效的。
答案 4 :(得分:-1)
像这样改变它 char * fruit =“Apple”; char * ptr_fruit = fruit;
它应该有用
答案 5 :(得分:-1)
const char* fruit= "Apple";
const char *ptr_fruit= fruit;
std::cout << ptr_fruit;
ptr_fruit= "Orange";
std::cout << ptr_fruit;