printf函数讲解

article/2025/9/12 5:45:39

 

printf函数讲解

#include <stdio.h>/*辗转相除法求最大公约数*/
int gcd(int m, int n);
int factrial(int a);
int main(void){int m, n, t;scanf_s("%d %d", &m, &n);if (m < n){t = m;m = n;n = t;}//n = gcd(m, n);//printf("%d", n);printf("%d\n", factrial(3));while (true){}return 0;
}
int gcd(int m, int n){int r;r = m % n;if (r == 0){return n;}else{gcd(n, r);//855  225  //855%225=3。。。。180 //225%180=1。。。。45  //180%45=4}
}//printf函数  讲解int factrial(int a) {      //传入参数a=3  递归调用你们说,怎么输出int product = 1;if (a == 1) {return product;}else {printf("a=%d\n", a);int p = factrial(a - 1);//a=2,f(1)=0,printf("p=%d\n", p);product = a * p;printf("product=%d\n", product);}
}

看到这个输出是不是很意外,为何p会等于10, product会等于30

else没有写return 语句,为啥不报错呢 ? 大家思考一下,我经过多番折腾,找大佬来帮忙看了下,才知道

这里就是这个printf函数作怪,因为printf函数和java的System.out.println是有很大区别的,在java里System.out.println只是在控制台打印输出,没有返回值。而c里面这么printf是有返回值的,返回整个字符串的长度,

我们来一步步分解printf函数,看看为啥会输出这个结果。
程序中的print函数是这样写的:printf("%d\n",printf("%d",printf("%d",i)));
一共有三个printf函数,我们可以使用一些代号来简化这个printf函数,如下:
代号A: printf("%d",printf("%d",i));
代号B: printf("%d",i)

则程序代码可以简化为:printf("%d\n",A); 那么我们就先来求A。
而A,又可以简化为:printf("%d",B);那么我们就先来求B。

B是 printf("%d",i),打印出“123”,即在运行结果中,你最先看到的是123。printf函数的返回值是printf实际控制输出的字符数,那么打印的123 就是3个字符,因此printf("%d",i)返回的就是3,也就是B是3,那么,A就可以写为printf("%d",printf("%d",3));打印出3,即在运行结果中,你紧接着会看到3。而打印出的3是1个字符,因此A就是1,那么printf("%d\n",A); 实际上就是printf("%d\n",1); 打印出1,即在运行结果中,你最后看到的就是1.

看了我的讲解应该懂了吧

 

 


http://chatgpt.dhexx.cn/article/9wdqqS0C.shtml

相关文章

C语言中fscanf和fprintf函数的使用

目录 一、前言 二、对比 1、scanf和fscanf&#xff1a; 2、printf和fprintf&#xff1a; 三、结论&#xff1a; 四、代码实现 1、fprintf相关代码 2、fscanf代码实现 3、 用fscanf和fprintf实现scanf和printf功能&#xff1a; 一、前言 在了解fscanf和fprintf之前我…

printf()函数详解

感谢博主的分享&#xff1a;https://me.csdn.net/blog/K346K346 1.printf()简介 printf()是C语言标准库函数&#xff0c;用于将格式化后的字符串输出到标准输出。标准输出&#xff0c;即标准输出文件&#xff0c;对应终端的屏幕。printf()申明于头文件stdio.h。 函数原型&am…

有关于fprintf()函数的用法

fprintf&#xff08;简介&#xff09; fprintf是C/C中的一个格式化库函数&#xff0c;位于头文件中&#xff0c;其作用是格式化输出到一个流文件中&#xff1b;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]…)&#xff0c;fprintf()函数根据指定的格…

雷达理论的模糊函数

在雷达理论中&#xff0c;模糊与分辨是两个既有联系又有区别的概念。对多个目标来说&#xff0c;模糊就是不能分辨。雷达的分辨力取决于模糊图中心主瓣的宽度。雷达模糊度不仅考虑主瓣宽度&#xff0c;还考虑模糊图旁瓣的影响。因此&#xff0c;在研究雷达分辨理论之前&#xf…

驱动板LVDS输出接口(发送器),液晶面板LVDS输入接口(接收器)

1&#xff0e;LVDS输出接口概述 液晶显示器驱动板输出的数字信号中&#xff0c;除了包括RGB数据信号外&#xff0c;还包括行同步、场同步、像素时钟等信号&#xff0c;其中像素时钟信号的最高频率可超过28MHz。采用TTL接口&#xff0c;数据传输速率不高&#xff0c;传输距离较短…

两种LVDS数传接口--车载视频传输

本文介绍两种LVDS数传接口&#xff1a;GMSL和FPD Link&#xff0c;这两种接口在汽车视频传输方面的应用是比较广泛的&#xff0c;尤其是Camera和处理器之间的链路&#xff0c;通过STP或者同轴电缆能使整个链路达到15m。 1、FPD Link Flat Panel Display Link(FPD Link)最早是…

LVDS接口分类与数据格式

转发路径&#xff1a;https://blog.csdn.net/a617996505/article/details/82386952 1.LVDS接口分类与数据格式 单路6it LVDS 这种接口电路中&#xff0c;采用单路方式传输&#xff0c;每个基色信号采用6位数据&#xff0c;共18位RGB数据&#xff0c;因此&#xff0c;也称18位…

Xilinx fpga实现LVDS高速ADC接口

LVDS 即Low-Voltage Differential Signaling。FPGA的selecteIO非常强大&#xff0c;支持各种IO接口标准&#xff0c;电压电流都可以配置。其接口速率可以达到几百M甚至上千M。使用lvds来接收高速ADC产生的数据会很方便。像ISERDES&#xff0c;IDDR&#xff0c;IDELAY&#xff0…

LVDS接口和接口电路概述

1、LVDS接口概述 LVDS&#xff0c;即Low Voltage Differential Signaling&#xff0c;是一种低压差分信号技术接口。克服以TTL电平方式传输宽带高码率数据时功耗大、EMI电磁干扰大等缺点而研制的一种数字视频信号传输方式。LVDS输出接口利用非常低的电压摆幅&#xff08;约350m…

常见视频高速接口分析MIPI,LVDS,RGB,HDMI

文章目录 一、RGB接口二、LVDS接口三、MIPI接口四、HDMI接口 一、RGB接口 &#xff08;1&#xff09;接口定义 RGB颜色是工业界的一种颜色标准&#xff0c;是通过对红、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的&#xff0c;RGB即是代表红…

接口mipi和lvds的区别

原文&#xff1a;http://m.elecfans.com/article/578395.html MIPI &#xff08;Mobile Industry Processor Interface&#xff09; 是2003年由ARM&#xff0c; Nokia&#xff0c; ST &#xff0c;TI等公司成立的一个联盟&#xff0c;目的是把手机内部的接口如摄像头、显示屏接…

液晶屏接口LVDS接口与MIPI DSI接口区别

LVDS与MIPI DSI区别_那个苏轼回不来了丶的博客-CSDN博客_“mipi dsi接口与LVDS与MIPI DSI区别_那个苏轼回不来了丶的博客-CSDN博客_“mipi dsi接口与lvds接口区别LVDS与MIPI DSI区别_那个苏轼回不来了丶的博客-CSDN博客_“mipi dsi接口与 1、LVDS接口只用于传输视频数据&#x…

液晶屏接口-LVDS

LVDS是英文Low Voltage Differential Signaling的缩写&#xff0c;它是一种低压差分信号技术接口。采用LVDS接口&#xff0c;可以使得信号在差分PCB线或平衡电缆上以几百Mbps的速率传输&#xff0c;推荐的最高数据传输速率是655Mbps&#xff0c;而理论上可以达到1.923Gbps。 【…

LVDS高速接口测试

话不多说&#xff0c;直接测试 1. OUTPUT&#xff1a;LVDS_TX 2. SDR&#xff1a;代表着速率&#xff0c;测试选的SDR&#xff08;单速率&#xff09; 3. 8&#xff1a;串换因子&#xff0c;就是一对LVDS转化几bit的并行数据&#xff08;和后面的clk&#xff0c;clk_div有关系…

MIPI、LVDS、RGB、HDMI等接口对比

液晶屏有RGB TTL、LVDS、MIPI、HDMI接口&#xff0c;这些接口区别于信号的类型&#xff08;种类&#xff09;&#xff0c;也区别于信号内容。 具体RGB TTL接口信号类型是TTL电平&#xff0c;信号的内容是RGB666或者RGB888还有行场同步和时钟&#xff1b; LVDS接口信号类型是LVD…

LVDS接口液晶屏定义(lcd)

转载于&#xff1a;https://blog.csdn.net/linphusen/article/details/6389032 LVDS接口液晶屏定义 LVDS接口又称RS-644总线接口 20PIN单6定义&#xff1a; 1&#xff1a;电源2&#xff1a;电源3&#xff1a;地 4&#xff1a;地 5&#xff1a;R0- 6&#xff1a;R0 7&…

基于FPGA的LVDS接口设计

实验内容&#xff1a; 通过LVDS接口&#xff0c;完成数据的收发测试。 上周居然开启了咸鱼模式&#xff0c;检讨一下 || 前集回顾&#xff1a; 《Xilinx - UG471中文翻译》&#xff08;1&#xff09;IDELAYE2原语介绍 《Xilinx - UG471中文翻译》&#xff08;2&#xff09;…

LVDS屏的俩种接口:JEIDAVESA

一、LVDS数据格式 LVDS信号格式有两种&#xff0c;一种JEIDA的标准&#xff0c;一种是VESA的标准; LCD屏老一点的有6bit的&#xff0c;现在普通的是8bit&#xff0c;新的就是10bit了; 每个clock周期内7bit数据&#xff08;跟TMDS标准有差别&#xff09;&#xff1a; 对应的…

LVDS接口是什么接口?

目前&#xff0c;有2种数字显示接口标准&#xff0c;一是由美国国家半导体公司&#xff08;National Semiconductor,NS&#xff09;推出的OpenLDI数字显示接口标准&#xff0c;另一个是由Silicon Image、Intel、Compaq、IBM、HP、NEC、Fujitsu等公司共同组成数字显示工作组&…

sensor lvds接口介绍

1.项目简介 用索尼的imx264 sensor采集图像&#xff0c;在内部模数转换之后&#xff0c;由lvds接收&#xff0c;然后解码&#xff0c;最后送给后端显示 2.框图 imx264配置成从模式&#xff0c;由spi总线配置&#xff0c;需要由FPGA提供 行、场信号&#xff0c;imx264根据接收到…