我有一个基本的指针问题。 我有一些像这样的代码: 如果以下代码中出现任何问题,请告诉我:
struct abc {
int a;
int b;
};
void func2(int*); // defined elsewhere
void func1 (struct abc *p1)
{
struct abc var1 = *p1; // ======> Can I do this ?
func2(&var1.b);
func2(&p1->b); // =========> Which of these 2 is right ?
}
答案 0 :(得分:10)
struct abc var1 = *p1;
======>我可以这样做吗?
是的,这会将p1指向的结构复制到局部变量var1。
中
func2(&var1.b);
func2(&p1->b);
=========>这两个中的哪一个是对的?
两者,如果func2()
接受int*
作为参数。这取决于您是否希望func2
修改p1->b
或var1.b
。