我正在尝试使用指针来反转字符串,这是一个非常标准的程序。
我尝试使用单个指针执行此操作,这与我见过的其他方法不同,在其他方法中,人们使用两个指针作为开始和结束位置。
#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。我对指针还很陌生,但是我认为指针只是存储位置的别名,所以这是什么问题?还是我缺少基本的东西?
答案 0 :(得分:2)
将星号放在p之前以取消引用。
*p=x[i];
此外,当您分配p = x[15]
时,您将取消引用x
(使其成为char
)并将其分配给p
(即{{1 }}。