printf后面的参数包括“格式控制字符串”和输出变量的列表“格式控制字符串”由格式控制字符和普通字符。其中前者以%开始加某一个特殊字符。比如%d为输出整数、%c输出字符。普通字符是原样输出的内容。
创新互联公司成都网站建设定制制作,是成都网站推广公司,为成都边坡防护网提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站营销推广热线:13518219792
输出变量列表即为输出的变量,其个数要与控制字符相对于。比如有int a=3,b=4,然后pritf(“a=%d,b=%d”,a,b)。
输出结果为a=3,b=4。以printf("abc")中abc为格式控制字符串中的普通字符,原样输出。print(“%d”,i)为以整形输出变量i的值。
printf命令的作用是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为:printf("格式化字符串", 参量表)。
printf()是C语言标准库函数,在 stdio.h 中定义。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
扩展资料:
printf函数定义:
函数声明:
int printf(char *format...);
调用格式:
printf("格式化字符串", 参量表);
格式化字符串包含三种对象,分别为:
(1)字符串常量;
(2)格式控制字符串;
(3)转义字符。
字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。
格式控制字符串format:
format-- 是字符串,包含了要被写入到标准输出 stdout 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。
printf的格式控制字符串format组成如下:
%[flags][width][.prec][length]type。
即:%[标志][最小宽度][.精度][类型长度]类型。
参考资料来源:百度百科-printf
使用自定义调试函数debug,控制输出不输出调试信息。
下面的程序中,如果要不输出调试信息,则注释掉#define DEBUG,否则不注释它。
这个程序,要输出调试信息时,运行结果如下:
i=1 ; f=1
i=2 ; f=2
i=3 ; f=6
i=4 ; f=24
4!=24
其中前面四行都是调试信息。
如果不输出调试信息,运行结果如下:
4!=24
有的人使用__DEBUG__来代替DEBUG,也是一样的。
用__DEBUG__更安全一些(免得其它不小心用了DEBUG),但用DEBUG方便一些。
一、在keil中调试c语言程序
1、打开我们的程序,点击菜单栏右侧的start/stopdebug..按钮,进入调试模式,如下图。
2、左侧为寄存器窗口,右上方是汇编窗口,我们可以看到各个寄存器的数值和c语言对应的汇编代码,如下图。
3、点击单步执行按钮或者点击f11、f10,都可以进入单步执行模式,方便我们看程序流程和执行步骤,如下图。
4、点击菜单栏的串口按钮,我们来调试串口的输出,这里有很多对应的调试工具可供选择,如下图。
5、单步执行,我们看到各个窗口的变化,当直行到输出时,可以看到串口窗口有相应的字符输出,如下图。
6、再次点击start/stop按钮来停止调试,如下图。
二、用vs2012对C语言进行调试
1、要对编程环境左边的一条竖直的空开的地方进行点击,点击的是你要调试的相应的语句。
2、点击窗口上方的工具栏的调试界面,点击逐语句或逐过程,都没关系。
3、开始调试,在调试过程中每个调试语句都要按一次F5键,在键盘上按下,你可以看到执行的当前的语句中,左边位置的红点有个箭头。
4、在每次调试语句中,变量值发生改变时,下方的小界面都会显示出来,看是否正确。
5、不断地重复这个步骤,知道发现错误的地方为止。
6、发现错误后,停止调试,修改相应的代码,即完成此次调试。
#includestdio.h
#includestring.h
#includestdlib.h
typedef struct student{
int number;
char name[10];
int age;
}student;
void main()
{
student *a;
a=(student *)malloc(sizeof(student));
printf("number:");
scanf("%d", a-number);
printf("name:");
scanf("%s", a-name);
printf("age:");
scanf("%d", a-age);
free(a);
return;
}
scanf("%s", a-name)属于带参数的传递