C语言问题 int *p,a=10,b=1 p=&a; a=*p+b; int *p,a=10,b

作者&投稿:致注 (若有异议请与网页底部的电邮联系)
int *p,a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为~

a的值为11 *p相当于变量a, *p的值为10

记得采纳啊

输出:20 20
------------
pp = &p; pp就指向p的地址p = &a;p就指向a的地址p= &b;p就指向b的地址了所以最后结果pp的值=p的值=b的值

答案:B
p = &a ;p指向a的存储空间
a= *p + b; *p此时a的存储数值为10,即a = 11。

选B啊!很简单的问题。p指向的是a的内存地址,*p就是取a内存地址里的值,然后加上b,才赋值给a。最后a就变成了11

有到类似的题是这样的
int *p=&a,a=10,b=1;
a=*p+b;
我举例的这道题选的是D
而你这道类似,所以选择D

#include<stdio.h>
void main()
{
int *p,a=10,b=1
p=&a;
a=*p+b;
printf("%d",a);
}

Compiling...

Cpp1.cpp
C:\Users\Lenovo\Desktop\Cpp1.cpp(5) : error C2146: syntax error : missing ';' before identifier 'p'
执行 cl.exe 时出错.

Cpp1.obj - 1 error(s), 0 warning(s)

是D


浮梁县18563763715: C语言问题 int *p,a=10,b=1 p=&a; a=*p+b; -
况废灯银: 答案为B.p=&a后,*p即为a.a=*p+b;也就等价于a=a+b=10+1.

浮梁县18563763715: 若有语句:int *p,a=10 p=&a;下面均代表地址的一组选项是 -
况废灯银: p是指针, a是变量. 所以 &a, 或者p,或者&p, 都是地址. A里面 a不是地址. *&a等效于a 也不是地址 . B里面 *a本身就是非法的. &*a属于非法表达式. *p是值,不是地址. C里面 *p不是地址,而是值. 注意 *&p 等效于p, 这个是地址. D里面 &a &*p和p都是地址. 这里 &*p等效于p.

浮梁县18563763715: 在C中,怎样区分数组指针和指针数组,int(*p)a[10]到底是什么? -
况废灯银: 很简单,你可以看看运算符优先级那里 ()是一个圆括号运算符,在所有运算符中优先级最高 *是一个指针运算符 [ ]是一个下标运算符 而下标运算符的优先级高于指针运算符 再看你给的例子int(*a)[10]和int* a[10] 第一个int(*a)[10],首先当然就是...

浮梁县18563763715: C语言指针地址输出问题 -
况废灯银: 能够输出地址值!#include"stdio.h" main() {int *P,a=10,**b;p=&a;b=&p; printf("%d",b); } 这个程序就可以(注意变量名,前后要一致,不要用大写!请将*P改为*p).将最后一行改为:printf("%x",b);你会看得更真切!(%x:按十六进制输出)

浮梁县18563763715: 一个简单C语言的问题!
况废灯银: 要看p是什么类型的指针,如果p的类型是指向指针的指针,那当然可以把地址赋给*p. 比如下面这段代码: int **p; int *q; int a=10; p=&q; *p=&a; printf("cont=%d\n",**p); 得到结果为:cont=10 这样看的懂了吗? 另外补充说明一下,p在刚定...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网