int*p=&a,*p=&a,*p=a和p=&a辨析

1.结论

  1. int *p =&a, 正确写法。
  2. *p = &a, 错误写法。
  3. *p = a, 正确写法。
  4. p = &a, 正确写法。

2.原因

"&“一直都是取地址符,而” * “在1中只是声明变量,在2,3,4中则是取值符,两者含义不同。
(1)在1中,” * "是声明变量,即告诉计算机,我这个P是指针类型的变量,是要存放地址的。为了便于理解,我们可以和看布尔型变量的定义方式对比:

int *p = &a;\\可以把int *p理解为(int*)p
bool p =a;\\把(int*)bool类比

而在另外三种情况中,&与 * 就分别是取地址运算符和取值运算符了,是一对相反的运算符。

  • 9
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
《计算机基础与程序设计》作业题(一) (课程代码:02275) 一、单项选择题 1.I/O设备指得就是计算机得( B ) A.存储设备 B.输入与输出设备 C.控制器 D。运算器 2。具有只读功能得内存储器就是指( A ) A.ROM B。RAM C。硬盘 D.CD-ROM 3.十进制数-5在八位得微机内得存储形式就是( D  ) A。00000101 B.10000101 C.11111010 D.11111011 4.C语言源程序得基本单位就是( B  ) A.过程 B。函数 C.子程序 D.语句 5。设有int p,q;以下不正确得语句就是( D ) A.p *=3; B.p/=q; C.p+=3; D.p&&=q; 6.若有定义:int a[10];则数组元素得下标得下限与上限分别就是( C  ) A.0与1 B.1与9 C。0与9 D.1与10 7.下列说法不正确得就是( C ) A。一个源程序文件由一个或多个函数组成 B.一个C程序由一个或多个源程序文件组成 C.一个C程序以函数为独立得编译单位 D。一个C程序必须有一个main( )函数 8。在C语言中,确定函数返回值得类型由( D  ) A。return语句中得表达式类型决定 B。调用该函数得主函数类型决定 C.调用函数时临时决定 D.定义函数时所指定得函数类型决定 9.若有以下定义与语句,且0 i<10,则对数组元素地址得正确表示就是( D  ) int a [ ]={0,1,2,3,4,5,6,7,8,9},*p; p=a; A.&(a+1) B.a++ C.&p D.&p[i] 10。若有以下说明:  char s[10]="ABCDEFGH",*p=s; 不能表示字符C得就是( B  ) A.s[2] B.s[3] C.s['c'—'a'] D。*(p+2) 11.若有下列程序段,欲使a=2,b=3,对应正确得数据输入方法就是(其中〈CR〉表 示换行) ( A )   int a,b scanf("%d%d",&a,&b); A.2〈CR> B.a=2 b=3<CR>   3<CR> C.a=2,b=3<CR> D.2,3<CR〉 12.设有说明 int x=0,y=2; 则执行 if(x=0) y=1+x; else y=x—1; 后,变量y得值就是( A ) A。-1 B.0 C.1 D。2 13.下列位运算符中,表示按位异或操作得就是( C ) A.~  B。 C.^   D。& 14。下列各个位运算符得优先级从左到右依次升高得就是( C  ) A.>〉 & ~  B. >〉 & ~   C。 & 〉〉 ~   D。~ & >> 15.设有说明:int u=1,v=3;则表达式u<<= v得值就是( D ) A.0  B.1    C.3  D。8 16.如果文件存储得就是数据在内存中存放得字节形式,则该文件就是( B ) A.ASCII文件 B.文本文件 C.二进制文件    D。设备文件 17.下列运算符中优先级最低得就是( D ) A。〉     B。!  C。%  D。= = 18。如果在程序中要使用系统提供得函数sqrt,则需要书得编译预处理命令就是( B ) A。#include〈stdio、 h> B.#include<math、 h> C.#include<string、h> D.#include〈malloc、h> 19.设有说明:int x=12,y=3;则x¦y得值就是( D ) A。0 B。3 C.12 D.15 20.测试文件就是否结束函数得函数名就是( A  ) A。feof B。EOF C。eof D。FEOF 二、多项选择题 21。存储在下列哪些设备中得信息可以长期保存?( BCDE ) A.RAM B.ROM C。硬盘   D。软盘  E.光盘 2、设有说明:int u=1,v=5;则下列表达式得值为1得有( AE ) A.u&v   B.v〉〉2  C.u^u D.u¦v   E。(u〈<3)/5 23。下列循环将会产生死循环得有(ACDE ) A。while(1);     B.do{ }while(0);  C.do{ }while(1);   D.for(k=1;k>―10;k+ +); E。for(k=1;k=10;k+ +,k――); 25.设有说明:int x=1,y=2,z=3;则下面表达式得值为0得有( ACDE) A.x&y&z B.x¦y¦z C.x^x+y^y D。z>>y E.x&0xff00 5、下面基本结构与特性中符合结构化程序设计得要求得有(ABCE ) A.选择结构  B.循环结构   C。顺序结构 D。各结构之间只有一个入口,至多两个出口 E.各结构之间只有一个入口,一个出口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值