关于网友提出的“ 请高手看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:
只有引用的内容不允许回复!
解决方案4: p的值不会改变temp,因为你的参数是传递的是值,也就是指针的值,应该用指针的指针,也就是char**p;
函数中改成*p=&g_Var;就可以了
以上介绍了“ 请高手看1道C语言面试题!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2820496.html