printf函数
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
int main()
{
char *p = (char *)malloc(20);
strcpy(p,"hello");
printf("%s",p);
}
为什么printf函数里面的参数 p 不能改为 *p?
[解决办法]
因为你输出的格式是%s
要给成*p的话 输出格式改成%c
[解决办法]
因为p指向一个字符串!p就标识字符串的首地址!
加上printf函数是个格式化输出函数,%s,就是输出指针p指向的内容的!
int main()
{
char *p = (char *)malloc(20);
memset(p, 0, 20); //防止出现乱码
strcpy(p,"hello");
printf("%s",p); // p指向的存放在内存地址上的内容
printf("%p",p); // p指向的内存地址
}