C语言中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);

第1个回答  2015-09-09
glibc里面可以看到实现,针对这个问题:
printf("%s\n",p); %s这个需要是的一个指针参数,就是从P地址开始打印字符,直到'\0'
%d 需要的一个int的值,printf会直接把*p值打印出来
第2个回答  2015-09-09
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
格式参数不同,后面的变量使用方法是不同的。
第3个回答  2015-09-09

printf格式化char*,int,float等的格式是固定的第一个p是char*,第二个*p对应int

字符串传地址,整型直接传值就可以

第一个可以改成输出单个字符

char  s[10]="abc";
char  *p=s;
printf("%c\n",*p);
printf("%c\n",*(p+1));

本回答被网友采纳

C语言中printf这个函数的代码实现从哪里可以看到,这个函数是如何实现...
glibc里面可以看到实现,针对这个问题:printf("%s\\n",p); %s这个需要是的一个指针参数,就是从P地址开始打印字符,直到'\\0'd 需要的一个int的值,printf会直接把*p值打印出来

c语言printf()的代码是多少?
代码如下:int main(){ float r,h,s;scanf("%f",&r);scanf("%f",&h);s=2*3.1415926*r*r+2*3.1415926*r*h printf("表面积是%f\\n",s);return 0;}

C语言中printf是库函数,那么printf的代码到底在哪里呢?
对于.h头文件你理解的没错,头文件是只是函数的声明,里面不放函数的具体代码,具体代码比如VC是在C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\crt\\src 目录下,你可以找到printf.c文件的源码,如果你是想看源码就看这个。我看了其它人的回复,C编译器的不同位置放的是不同的函数部...

c语言中的printf()这样的有不定个参数的函数是如何实现的
首先先看到main函数中的不定参数:1.引用:在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。argc: 整数, 鴐ain()的命令行参数个数。argv: 字符串数组。argv[0] 为程序运行的全路径名 argv[1] 为在DOS命令行中执行程序名后的第一个字符串;argv[2] 为执行程序名后...

c语言print这个函数怎么用
printf命令的作用是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为:printf("<格式化字符串>", <参量表>)。printf()是C语言标准库函数,在 stdio.h 中定义。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

c语言print这个函数怎么用
C语言中的printf函数是一个强大的格式化输出工具,其核心在于"格式控制字符串"和变量列表的配合。格式控制字符串以%符号开始,可以指定输出类型,如%d表示整数,%c表示字符。变量列表则是要输出的实际数据,如int a=3, b=4时,`printf("a=%d, b=%d", a, b)`会显示a和b的值。printf的主要作用...

C语言如何让printf在屏幕指定位置输出数据?
可以参考下面的代码:include<stdio.h> include<windows.h> void main(){ int row=3, col=1 system("cls");for (i=0;i<row;i++)printf("\\n");for (j=0;j

C语言函数printf怎么用?
include <stdio.h> int main(void){ char name[20];printf("请输入你的姓名:");scanf("%s",name);printf("你的姓名是:%s\\n",name);return 0;}

c语言printf()函数的原型是什么?
intn,i,j,t;inta[11];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n;i++){ for(j=0;j<n-i;j++){ if(a[j]<a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;} } } for...

如何使用c语言中的函数printf();
include <stdio.h> int main(){ int i,j,k,sum,n,ji;n=678;i=n\/100;\/*分解出百位*\/ j=n\/10%10;\/*分解出十位*\/ k=n%10;\/*分解出个位*\/ sum=i+j+k;ji=i*j*k;printf("百分:%d 十位:%d 个位:%d 和为:%d 积为:%d\\n",i,j,k,sum,ji);} ...

相似回答