c语言-C语言printf函数问题。。。。。

问题描述

C语言printf函数问题。。。。。

const int N = 5;

printf("asd",N);
N所在的位置不应该是可变参数吗?我都定义成常量了,怎么这个程序还能运行啊?

解决方案

可变参数和常量不矛盾。
可变参数的可变是指参数的个数可变。

解决方案二:

可变参数是说数量?还是参数不固定?……你在哪里看的啊,有原文么,不要误解。
任何情况还是要以实际运行编译为准,尽信书不如无书。
我选择相信编译器……

解决方案三:

printf是根据格式化字符串中的格式字符进行解析的。后面的参数可以多,但是不能少。

解决方案四:

前面字符串里少了一个格式符,应该有个%d。

解决方案五:

printf的格式是这样 printf("%d",N); 出现%d,%f等等 后面的变量是不能省略的 。不然就会直接显示了。

解决方案六:

printf 的格式貌似不正确吧

解决方案七:

是printf()是接收的是可变参数的,是说printf()可以有不同数量的参数,不是输入的参数的数值必须可变。

解决方案八:

这个printf是编译器,给解决的,
是通过格式,然后循环查找后边的参数,进行动态生成字符串。
参数多了,没问题,若参数少了,可能产生访问越界等问题。

时间: 2024-09-20 00:44:02

c语言-C语言printf函数问题。。。。。的相关文章

C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例) .

我们在C语言编程中会遇到一些参数个数可变的函数,一般人对它的实现不理解.例如Printf():   Printf()函数是C语言中非常常用的一个典型的变参数函数,它 的原型为: int printf( const char* format, ...); 它除了一个参数format固定外,后面的参数的个数和类型是不确定的,如下列三种调用方法: 1.    printf("%d\n", i); 2.    printf("%s\n", "Hello World

c语言printf函数的使用详解_C 语言

printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少.②-:有-表示左对齐输出,如省略表示右对齐输出.③0:有0表示指定空位填0,如省略表示指定空位不填.④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数.N指精度.用于说明输出的实型数的小数位数.为指定n时,隐含的精度为n=6位.⑤l或h:l对整型指long型,对实型指double型.h用于将整型的格式字符修正为short型. ----------

c语言-C语言选择法排序函数的实现问题

问题描述 C语言选择法排序函数的实现问题 我在看C语言程序设计是遇到一个问题,用选择法对数组中的5个整数按由小到大排序 #include int main() { void sort(int array[],int n); int a[5],i; printf("Please input 5 numbers:n"); for(i=0;i<5;i++) scanf("%d",&a[i]); sort(a,5); printf("the sort

c语言-C语言,如何在一个函数内部,获取这个函数入口点的地址?

问题描述 C语言,如何在一个函数内部,获取这个函数入口点的地址? 1C # Git@OSC 的 Android 和 iOS 客户端全面开源 include #include void show(void* p) { printf(""%pn""p); } int main() { show(&show); show(show); return 0; } Output: 1 2 0x8048480 0x8048480 解决方案 答案处处有.函数名称就是入口地址

c语言-C语言编写一个输出的函数

问题描述 C语言编写一个输出的函数 编写一个函数,输出数组,要求通过参数指定每行输出的元素个数,以 及每个元素占有的列数. 假设自己定义一个参数为x 那么打印的时候printf(""%xd"")怎么用一个参数来满足每次打印时候 元素所占列数的不同呢 解决方案 #include <stdio.h>void display(int data[] int n int cols int w){ for (int i = 0; i < n; i++) { p

printf-c语言 残缺程序(函数)的代码怎么改?

问题描述 c语言 残缺程序(函数)的代码怎么改? 描述 Cloud是个喜欢探险的程序员,在一次探险的时候,偶然发现了一些残缺的文件.这些文件上都是用c/c++写的程序代码.为了解开残缺文件的谜团,Cloud决定尽力补全这些残缺的程序代码,以便发现更多的秘密.第一份残缺文件上的代码如下,请帮助他补全程序.(打星号的地方需要补全) 程序名称:计算从1到n之间的完数个数. #include ****** ******(******) { int i,s; s=******; for(i=******;

急急急-用c语言写三个函数分别判断年月日是否合法

问题描述 用c语言写三个函数分别判断年月日是否合法 年规定在1900-2050,月规定1-12,还要考虑是否闰年,闰年二月的天数是否正确,不正确则重新输入.本人实习生,整不出来领导要发飙了,这是一个通讯录内容的一部分,输入用户生日,1.name. 2.address. 3.birthyear. 4.birthmonth. 5.birthday 解决方案 #include<stdio.h> int isYear(int y) { return y>=1900 && y<

c语言-C语言中如何调试函数求指导

问题描述 C语言中如何调试函数求指导 C语言中如何调试函数?按F11几步之后进入了如下图一些文件中开始逐步调试,这是怎么回事? 就是一些诸如printf.c, _file.c的文件,怎么能跳过这些,调试函数呢? 解决方案 F9设置断点,F5调试运行,F11逐语句(可进入函数),F10逐过程(不进入函数),shift+F11跳出函数. 解决方案二: 就是一些诸如printf.c, _file.c的文件,怎么能跳过这些,调试函数呢? 解决方案三: 编译器是通过堆栈的形式给你调试的

c语言-C语言:在子函数中修改结构变量中元素的值

问题描述 C语言:在子函数中修改结构变量中元素的值 要写一个处理学生成绩信息的程序,使用单向链表,创建,遍历已经没有问题,但在修改结点的数据时出现问题,输入数据后程序就停止运行. 修改的思路是先根据学号定位到指定结点,然后修改数据,修改函数如下 void Correct(float *a,float *b,float *c,float *d,float *e,float *f) { printf("请依次输入学生正确的的英语 数学 物理 C语言成绩n"); scanf("%f