c语言中用指针定义字符串,用scanf获得用户输入字符串问题

img


这个函数里面,就看那个char pw,我用scanf(“%s”,pw),然后print pw可以得到用户自定义的一个字符串
但是这个图中

img


程序只能允许道scanf,后面就没了,是什么原因。在网上看了有人说char
定义的字符串和用char str[]定义的字符串一个是只可读,一个是可写可读,具体区别在哪里呢

改成scanf("%s",&pw);

你第一个pw可以正常输出?

直接定义指针 char * pw的话,指针没有内存地址,需要malloc函数申请内存,
可以这样写

#include<stdio.h>
#include <malloc.h>
int main()
{
    char *pw=(char*)malloc(sizeof(char));
    scanf("%s",pw);
    printf("%s",pw);
    return 0;
}

img