Как исправить ошибку «не может конвертировать char в char *» в C ++? - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь перевернуть строку с помощью указателей, что, я думаю, довольно стандартная программа.

Я пытался сделать это с помощью одного указателя, в отличие от других методов, которые я видел, когда люди используют два указателя для началаи конец.

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void main()
{
 clrscr();
 char x[15];
 cout<<"enter word";
 gets(x);
 int l=strlen(x);
 char* p;
 p=x[15];
 for(int i=l-1;i>=0;i++)
 {
  p*=x[i];
  p--;
 }
 puts(x);
 getch();
}

Я ожидал, что это сработает, но он показывает одну ошибку, что он не может преобразовать char * в char.Я довольно плохо знаком с указателями, но я думал, что указатели - это просто псевдонимы для областей памяти, так в чем же проблема?Или я упускаю что-то фундаментальное?

1 Ответ

2 голосов
/ 25 июня 2019

Поставьте звездочки перед p, чтобы разыменовать его.

*p=x[i];

Кроме того, когда вы присваиваете p = x[15], вы разыменовываете x (что делает его char) и присваиваете его p (который char*).

...