printf()函数?该怎么处理
printf()函数?#include stdio.hint main() {char *aQQQQQQQprintf(&a) }z@z:~$ gcc a.ca.c: In fun
printf()函数?
#include <stdio.h>
int main()
{
char *a="QQQQQQQ";
printf(&a);
}
z@z:~$ gcc a.c
a.c: In function ‘main’:
a.c:6: warning: passing argument 1 of ‘printf’ from incompatible pointer type
/usr/include/stdio.h:339: note: expected ‘const char * __restrict__’ but argument is of type ‘char **’
a.c:6: warning: format not a string literal and no format arguments
printf()函数的参数是字符串。
为什么错?
[解决办法]printf的第一个参数的类型是char*
你的a的数据类型是char*
&a的数据类型是 char**
[解决办法]他说你的格式控制字符串 没有 %d %s %f 之类的字符
真是辛苦了 连这个都警告
你这样写吧
puts(a);
[解决办法]你要按照函数原型的参数传递实参
extern int printf (__const char *__restrict __format, ...);
__const char *__restrict __format这个参数是个包含格式控制的字符串指针,后面是依据前面的格式符而提供相应的输出变量或常量
比如:
int a = 10, b = 20;
printf("a = %d \n", a);// a = 10
printf("%s", "string");//string
printf("a = %d; b = %d\n", a, b);
找本c语言瞅瞅吧!printf与scanf是基础内容
[解决办法]but argument is of type ‘char **’
说明&a是char **而不是printf需要的参数。