首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

printf()函数?该怎么处理

2013-03-14 
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需要的参数。

热点排行