如何修复 C++ 中的 'cannot convert char to char*' 错误?
How to fix 'cannot convert char to char*' error in C++?
我正在尝试使用指针反转字符串,我想这是一个非常标准的程序。
我尝试使用单个指针来执行此操作,这与我见过的人们使用两个指针作为开始和结束的其他方法不同。
#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。我对指针很陌生,但我认为指针只是内存位置的别名,所以有什么问题吗?还是我遗漏了一些基本的东西?
将星号放在 p 之前以取消引用它。
*p=x[i];
此外,当您分配 p = x[15]
时,您正在取消引用 x
(这使它成为 char
)并将其分配给 p
(这是一个 char*
).
我正在尝试使用指针反转字符串,我想这是一个非常标准的程序。
我尝试使用单个指针来执行此操作,这与我见过的人们使用两个指针作为开始和结束的其他方法不同。
#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。我对指针很陌生,但我认为指针只是内存位置的别名,所以有什么问题吗?还是我遗漏了一些基本的东西?
将星号放在 p 之前以取消引用它。
*p=x[i];
此外,当您分配 p = x[15]
时,您正在取消引用 x
(这使它成为 char
)并将其分配给 p
(这是一个 char*
).