您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 请高手看1道C语言面试题!

请高手看1道C语言面试题!

来源:网络整理     时间:2016/7/20 2:05:13     关键词:

关于网友提出的“ 请高手看1道C语言面试题!”问题疑问,本网通过在网上对“ 请高手看1道C语言面试题!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 请高手看1道C语言面试题!
描述:

unsigned char g_Var;
void GetGlobalAddr(unsigned char *p)
  {
     p = &g_Var;
  }
void main()
  {
      unsigned char *temp = NULL;
      GetGlobalAddr(temp);
      printf("\n  =%u" , *temp);
      return;
   }
不定项选择:
A.对P强制类型装换错误
B.调用函数时局部变量P存在于栈中
C.P值的改变不会影响temp
D.调用函数后temp的值被改变为g_Var的值
请解释一下!


解决方案1:

B和C啊
p是局部变量,是temp的一个副本,因此改变p对temp没有影响

解决方案2:

P值的改变不会影响temp,想得到应该用指向指针的指针

#include 
unsigned char g_Var;
void GetGlobalAddr(unsigned char **p)
{
*p = &g_Var;
}
void main()
{
unsigned char *temp = NULL;
GetGlobalAddr(&temp);
printf("\n =%u" , *temp);
return;
}
解决方案3:

引用 7 楼 xmt_0114 的回复:
B和C啊
p是局部变量,是temp的一个副本,因此改变p对temp没有影响

只有引用的内容不允许回复! 解决方案4:

p的值不会改变temp,因为你的参数是传递的是值,也就是指针的值,应该用指针的指针,也就是char**p;
函数中改成*p=&g_Var;就可以了


以上介绍了“ 请高手看1道C语言面试题!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2820496.html

相关图片

相关文章