![](https://i-blog.csdnimg.cn/blog_migrate/558de369d2199079038ecfcaa5900061.png)
B
sub函数的作用是将形参y和x 的差赋值给了z指向的那个内存地址,所以sub(10,5,&a)10和5属于值传递,a是属于地址传递,也是a与z指向了一个存储单元,在执行函数后,a随*z变化
所以,a为y-x=-5;sub(7,a,&b)-5-7=-12;sub(a,b,&c)-12+5=-7
![](https://i-blog.csdnimg.cn/blog_migrate/f03a97149d8e6e8af096fda63961a817.png)
D
A:将数值赋值给指针变量
B:将普通变量的值赋值给指针变量
C:将地址赋值给普通变量
正确的赋值语句应注意赋值号两侧的类型要匹配,普通变量应该赋数值,指针变量应该赋地址,“普通变量=数值”;“指针变量=地址”
![](https://i-blog.csdnimg.cn/blog_migrate/fed29a20cf2c0d1f1430ebbc3bd77852.png)
C 指针变量的值只能是存储单元地址,而不能是一个整数
![](https://i-blog.csdnimg.cn/blog_migrate/83444312eb0eb993f42dff844165633b.png)
A
f函数中变量x传递的是变量地址,可以实现值变换,而变量y是传递的值,执行完f后,y的值是变了,但main函数中的y未变化,
Y=4,x=2+4+2=8
![](https://i-blog.csdnimg.cn/blog_migrate/02656cfe7a2073f7e796cadf16952506.png)
D
A:定义变量不能连等,=右边必须是量
B:‘A’为65,65+1为赋值,把66赋值给‘A’?
C:c是指向指针的指针,应该为**c=&b
![](https://i-blog.csdnimg.cn/blog_migrate/68ad60424747030c0adec479399b2275.png)
C
![](https://i-blog.csdnimg.cn/blog_migrate/f2b53dc1176a1d9f3367d064ae9b75de.png)
A:通过n1的地址q,提取数据n1的值,赋值给由p所指向的n2地址
C:是将n1的地址赋值给p,即p指向n1,与n2无关,
![](https://i-blog.csdnimg.cn/blog_migrate/7e8492fc40fa2f15eccc7d0e2fcb6132.png)
B
函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,,参形指针变量a和b指向i和j,在swap执行完后,分别指向j和i,而指针变量p和q所指向变量的值没有发生变化,所以输出结果为3,5
![](https://i-blog.csdnimg.cn/blog_migrate/7ca0e23665196c56f547d6bedb222a24.png)
A
B:*p代表存储单元的值,而&n代表变量n的地址,将一个地址赋给一个值是不正确的;指针变量在定义时需要加*,而在赋值时则不用
C:指针p代表存储单元的地址,前面不需要加&
D:将一个地址输出是不对的,printf(“%d/n”,*p);
![](https://i-blog.csdnimg.cn/blog_migrate/71055783ce9fa2c3db9c18a0b5c62b05.png)
D
c:指针p和q类型不一样