一道C语言的题目,求详细解释*pa与pa的区别Void main(){int a,b,*pa=&a,*pb=&b;*pa=3;*pb=4;a=5;b=6;Pb=pa;Printf(“%d\n”,*pa+*pb);}A、10 B、11 C、12 D、7
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 18:59:32
![一道C语言的题目,求详细解释*pa与pa的区别Void main(){int a,b,*pa=&a,*pb=&b;*pa=3;*pb=4;a=5;b=6;Pb=pa;Printf(“%d\n”,*pa+*pb);}A、10 B、11 C、12 D、7](/uploads/image/z/13045853-29-3.jpg?t=%E4%B8%80%E9%81%93C%E8%AF%AD%E8%A8%80%E7%9A%84%E9%A2%98%E7%9B%AE%2C%E6%B1%82%E8%AF%A6%E7%BB%86%E8%A7%A3%E9%87%8A%2Apa%E4%B8%8Epa%E7%9A%84%E5%8C%BA%E5%88%ABVoid+main%28%29%7Bint+a%2Cb%2C%2Apa%3D%26a%2C%2Apb%3D%26b%3B%2Apa%3D3%3B%2Apb%3D4%3Ba%3D5%3Bb%3D6%3BPb%3Dpa%3BPrintf%28%E2%80%9C%25d%5Cn%E2%80%9D%2C%2Apa%2B%2Apb%29%3B%7DA%E3%80%8110+B%E3%80%8111+C%E3%80%8112+D%E3%80%817)
一道C语言的题目,求详细解释*pa与pa的区别Void main(){int a,b,*pa=&a,*pb=&b;*pa=3;*pb=4;a=5;b=6;Pb=pa;Printf(“%d\n”,*pa+*pb);}A、10 B、11 C、12 D、7
一道C语言的题目,求详细解释*pa与pa的区别
Void main()
{int a,b,*pa=&a,*pb=&b;
*pa=3;*pb=4;a=5;b=6;
Pb=pa;
Printf(“%d\n”,*pa+*pb);
}
A、10 B、11 C、12 D、7
一道C语言的题目,求详细解释*pa与pa的区别Void main(){int a,b,*pa=&a,*pb=&b;*pa=3;*pb=4;a=5;b=6;Pb=pa;Printf(“%d\n”,*pa+*pb);}A、10 B、11 C、12 D、7
这里涉及的主要是对指针的理解;
首先声明四个变量,两个int类型的变量,两个int *类型的变量;int类型的变量存储的是int类型的值,int *类型的变量存储的是一个地址,这个变量可以存储一个int类型的地址,而这个int类型的地址里面毫无疑问存储的是一个int类型的值.
int *pa=&a,可分解成:
int *pa;
pa = &a;//把a的地址赋给pa
这样pa这个指针就指向了变量a的地址;
* 是一个解引用符,在这里,*pa就是指针pa所指向的内存当中存储的变量;也就是说这时*pa与a是等价的.
pb与b的关系也是一样的;
现在就很清楚了:
*pa=3;//往a这个变量里存3
*pb=4;//往b里存4
a=5;//往a里存5
b=6;//往b里存6
pb=pa;//pb这个指针指向变量a的地址
*pa + *pb;//就是a + a,并且此时a = 5
答案自然是 A