更改char变量值并使用指针进行打印

时间:2015-08-04 09:49:09

标签: c++ pointers

我想使用指针技术将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");

}

6 个答案:

答案 0 :(得分:3)

您应该查看C ++的基础知识。并放弃char * for std :: string。无论如何,如果你真的想要使用这种方法,一些提示:

  1. 为您的水果char fruit[50] = "Apple"
  2. 声明足够大的缓冲区
  3. 使用strncpy进行复制和一些临时容器。

答案 1 :(得分:1)

这是你想要的吗?

#include <iostream>

int main()
{
   char const *fruit="Apple";

   char const **ptr_fruit;
   ptr_fruit = &fruit;
  *ptr_fruit = "Orange";

   std::cout << fruit;
}

enter image description here

答案 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;