C语言中printf这个函数的代码实现从哪里可以看到,这个函数是如何实现的
chars[10]="abc";char*p=s;printf("%s\n",p);//这里改成*p就报错难道说printf是先找到地址,然后再把地址中对于的值给打印出来...
char s[10]="abc";
char *p=s;
printf("%s\n",p);//这里改成*p就报错
难道说printf是先找到地址,然后再把地址中对于的值给打印出来?
如果是这样的话下面的这个应该写p才对,但下面的这个为什么又是*p了呢
int a=10;
int *p=&a;
printf("%d\n",*p); 展开
char *p=s;
printf("%s\n",p);//这里改成*p就报错
难道说printf是先找到地址,然后再把地址中对于的值给打印出来?
如果是这样的话下面的这个应该写p才对,但下面的这个为什么又是*p了呢
int a=10;
int *p=&a;
printf("%d\n",*p); 展开
3个回答
展开全部
glibc里面可以看到实现,哪空针对这个问题:
printf("%s\n",p); %s这个需要是的一个指针参数,就是从P地址开始打印字符,直颂缓哪到野码'\0'
%d 需要的一个int的值,printf会直接把*p值打印出来
printf("%s\n",p); %s这个需要是的一个指针参数,就是从P地址开始打印字符,直颂缓哪到野码'\0'
%d 需要的一个int的值,printf会直接把*p值打印出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p为指针变量, *p表示该地址中的数据
char s[10]="abc";
char *p=s; //这里p是字符指针,*p表示一个备源字符,p是字符串的首地址
printf("%s\n",p); //%s表示输出一正滚侍个字符串,从给定的地址p开始,直到遇到\0结束输出
printf("%c\n", *p ); //如果输出一个字符,则要用%c,这时的参数要用*p
格式参举吵数不同,后面的变量使用方法是不同的。
char s[10]="abc";
char *p=s; //这里p是字符指针,*p表示一个备源字符,p是字符串的首地址
printf("%s\n",p); //%s表示输出一正滚侍个字符串,从给定的地址p开始,直到遇到\0结束输出
printf("%c\n", *p ); //如果输出一个字符,则要用%c,这时的参数要用*p
格式参举吵数不同,后面的变量使用方法是不同的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf格式化char*,int,float等的格式是固定的第一个p是char*,第二肢销个*p对应int
字符串传地址,整型直接传值皮饥棚就可以
第一个可以改成输出单个燃则字符
char s[10]="abc";
char *p=s;
printf("%c\n",*p);
printf("%c\n",*(p+1));
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询