关于指针和二维数组报错原因不明白啊

指针和二维数组
#include

int mian()
{
int num = 1024;
int* pi = #
char* ps = "fushC";
void* pv;
pv = pi;
printf("pi:%p,pv:%p\n", pi, pv);
printf("pv:%d\n",(int*) pv);
pv = ps;
printf("ps:%p,pv:%p\n", ps, pv);
printf("*pv:%s\n", (char)pv);
return 0;
}
这段报错的原因是啥

img

img

main函数,你写成mian了
你把代码用代码块格式化一下,否则一些*号被当作标识符隐掉了,看不出原先代码格式。
printf报错的提示是你用%s格式,但后面的变量是个int类型,但%s要求后面必须是字符串地址,即字符数组或者字符指针

修改如下,供参考:

#include<stdio.h>
int main()  //mian()
{
    int num = 1024;
    int* pi = &num;
    char* ps = "fushC";
    void* pv;
    pv = pi;
    printf("pi:%p,pv:%p\n", pi, pv);
    printf("*pv:%d\n", *(int*)pv);
    pv = ps;
    printf("ps:%p,pv:%p\n", ps, pv);
    printf("*pv:%s\n", (char*)pv);
    return 0;
}
//输出:
//pi:0115FB20, pv : 0115FB20
//* pv : 1024
//ps : 00434290, pv:00434290
//* pv:fushC


问题比较多:

  1. main 函数,你写成了。。。。
  2. printf(),本来是要%s,你强制转换成char??应该是 char* 才是
    其他的,你把代码纠正之后再看吧