一道C语言的题目,求详细解释*pa与pa的区别
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 14:37:59
一道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
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
再问: 那请问之前存进的3还有什么用?另外*p和p有什么区别
再答: 之前存的3直接覆盖了,也就是丢失了。 *p是取p指针所指向地址里面存的值;p则是一个指针,它里面存的是一个变量的地址。 也就是,p这个变量里存的是一个地址,*p代表的就是这个地址里面的值。
首先声明四个变量,两个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
再问: 那请问之前存进的3还有什么用?另外*p和p有什么区别
再答: 之前存的3直接覆盖了,也就是丢失了。 *p是取p指针所指向地址里面存的值;p则是一个指针,它里面存的是一个变量的地址。 也就是,p这个变量里存的是一个地址,*p代表的就是这个地址里面的值。
一道C语言的题目,求详细解释*pa与pa的区别
C语言c=(*pa)+++*pb的疑问,求解答
C语言题目 求详细解释
一道c语言题目 求解释
一道C语言的题目求代码
求一道数据结构题目!C语言的!
一道简单的才语言习题,求详细解释.
一道关于广义积分的题目,答案是C。求大神详细解释每个选项,谢谢!
防晒霜spf30,PA++和spf50,PA+++的区别
c语言中(*pa)+++*pb 是等价与((*pa)++)+(*pb)还是(*pa)+(++*pb)
如图PA,PB分别切与圆AB,C是圆上任意一点过C做切线三角形PDE的周长为12求PA的长
在C语言中,有如下的写法:int a = 5; int *pa; pa = &(a + 1);