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

C语言指针函数有关问题

2013-08-09 
C语言指针函数问题#include stdio.hchar *fun(void){char *a helloreturn a//&a[0]}int main(void

C语言指针函数问题
#include <stdio.h>
char *fun(void)
{
char *a = "hello";
return a;//&a[0]
}
int main(void)
{
char *p = NULL; 
p = fun(); 
printf("%s\n", p);
return 0;
}
代码如上所示,指针函数的一个例子。请问各位大神们,char *fun(void)函数的返回值不应该是a的地址信息么? 在main中输出是的不就是a的地址信息么?为什么输出的是a的内容啊。。。。求解 C 指针函数
[解决办法]
//在函数中不要反回局部变量的地址
printf("%s\n", p); //s的输出格式是字符串格式,打印指针p所指向的字符串

打印地址要printf("%x\n", p)
[解决办法]

#include <stdio.h>
char *fun(void)
{
   char *a = "hello";
   return a;//&a[0]
}
int main(void)
{
   char *p = NULL; 
   p = fun(); 
   printf("%s\n", p); //这是打印字符串的格式
   printf("%p\n", p); //打印地址
   return 0;
}

热点排行