关于C++的一个疑问

img


我的程序哪里有错误?怎么调试成这个了?
另外,一开始我没写char *p=&s1,只写了char *p。电脑非要我给p初始化,为什么呀?不可以在cin之后再写p=&s1吗?

你s1定位成了char,就只能保存一个字符,应该定义成char数组,或者string类型
不能只定义char *p,指针必须初始化的,如果一开始不知道要指向哪里,可以定义成char *p=nullptr

供参考


#include <iostream>
using namespace std;
int main()
{ 
    int i, j;
    char s1[15], * p = s1, s2[15];
    cin >> s1;
    for (i = 0; *(p + i); i++)
        s2[i] = *(p + i);
    for (j = 0; j<strlen(s1); j++)
        cout<<s2[j];
    return 0;
}