想问一下输出结果时,啥时候用p,啥时候用*p?
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
int main()
{
char *p;
if((p=(char*)malloc(40*sizeof(char)))==NULL)
{
printf("内存分配失败!");
exit(0);
}
strcpy(p,"Pointer! ");
printf("%s",p);
free(p);
p=NULL;
return 0;
}
这里printf("%s",p)为啥不是printf("%s",*p),p不是表示地址而*p表示地址中的值吗?
输出指针地址时用p,输出指针指向的内容用*P。这里只是分配了p的地址,并没有为其填充内容。
热门标签: