puts函数出现warning: passing argument 1 of ‘puts’ from incompatible pointer type(警告:从不兼容的指针类型传递“puts”的参数1)

代码:

 1 /*************************************************************************
 2     > File Name: ptr_variable.c
 3     > Author: Mr.Yang
 4     > Purpose:演示指向变量的指针 
 5     > Created Time: 2017年06月03日 星期六 08时47分33秒
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 #include <stdlib.h>
10 
11 int main(void)
12 {
13         int a = 1000;
14         printf("a的地址为:%d\n",&a);
15 
16        int *p;
17         puts(p);
18         printf("指针p的地址为:%d\n",&p);
19 
20         return 0;
21 }

错误完整描述:

1 ptr_variable.c: In function ‘main’:
2 ptr_variable.c:17:7: warning: passing argument 1 of ‘puts’ from incompatible pointer type
3   puts(p);
4        ^
5 In file included from ptr_variable.c:8:0:
6 /usr/include/stdio.h:695:12: note: expected ‘const char *’ but argument is of type ‘int *7  extern int puts (const char *__s);
8             ^

由描述可知,puts需要const char *但是参数给了 int *,通过查询puts函数的用法(如下:附)可知,里面是一个字符串参数,不是int型参数,所以上面的代码可把int *p改为char *p即可编译通过。

附:puts()函数用于将一字符串放到标准输出流(stdout)中,并在最后增加换行符 '\n',其函数原型如下:
       int puts(char *string);

posted @ 2017-06-03 09:49  杨来  阅读(28258)  评论(0编辑  收藏  举报