为您找到"
int *p,a;则语句 p=&a;中的运算符& 是
"相关结果约100,000,000个
核心在于p的类型。定义等效于 int *p[3];这里p是一个数组,包含三个元素,每个元素类型为int 所以 A p为数组名, 不可以赋值。B p[0]为int*, 而a为二维数组名,等效于int **, 类型不匹配。C a[1][2]为a的一个元素,类型是int,所以&a[1][2]是int*, 和p[0]类型相同, 所以这个...
设p1、p2均为指向同一个int型一维数组的指针变量, k为整型变量, 则下面不能正确执行的赋值语句是___ 。A) k=*p1+*p2 ; B) p2=k ;C) p1=p2 ; D) k=*p1*(*p2) ;原题是这个,这题答案选B选项,因为p2是一个地址,k是一个值,所以选B。
a=++b;等同于 b++;a=b;记住一条就是了: ++在前面(如++b)就先加,在后面就赋值后再加 这牵涉到左值右值的问题 不是三言两句说的清楚的 你可以去百度查 2 等于1 17/5=3.xx (int)3.xx=3 3%2=1 (int)取整 就是去掉小数点后面的东东 %取余 3 &&的运算级别高于! 所以...
4*5是表达式;赋值给a,所以a的值是20;a+5;是表达式,他没有赋值给任何变量;所以a的值还是20;
A。原题语句应该是x+=y,y=x-y;x- =y;才有意义。这样的话,执行x+=y得x=x+y 由于此时的x,故执行y=x-y得y=x 由于此时的x,y,故最后执行x-=y,得x=y。例如:x+=y等价于x=x+y,将x、y的和赋给x y=x-y=(x+y)-y=x,将原来x的值赋给y x-=y等价于x=x-y=x+y-x...
int **p p的引用的引用c) int (*p)[4] p的引用之后形成的数组是选C 因为 移动a数组一行,就是指: 二维数组 ,第一索引代表行,第二索引代表列int (*p)[4] : p的引用(索引)移动(*)形成的一维(*p)[4],列不变。 int *p[4] : 数组p的第三个元素的引用 ...
变量a的地址是不能变的,当程序被加载时,操作系统会为它分配好地址,且一经分配,不能再改变!当然,每一次程序运行时,操作系统为a分配的地址可以不同。有以下几点常常另初学者感到困惑,现举例加以解释:int b,c,*a;a=&b;语句a=&b;并没有改变a的地址,它只是改变了a这个箱子中装的东西。
输出框输出的是32-82(没有空格)还想说一下关于printf的问题.就以本题为例.如果%d的个数少于输出项的个数,则多余的项不输出.如果%d的个数多于输出项的个数.则多项的%d会输出不定值.还有,就是printf是按从左向右的顺序输出的.但是输出项部分.是以从右向左的顺序运算的.也就是说.本例中.是...
a的值是3,表达式的值是5。a=3,5;执行的时候是 (a=3),(5);,3会赋值给a,一个语句执行的顺序是从左往右,最后执行到5,所以表达式的值是5。逗号运算符的优先级最低,a=15,后面的a*4,a+5不改变任何变量的值,a=(3*5, a*4, a+5)这样的式子就会等价于a=a+5=10,逗号运算符的...
不能正确输出a数组全部元素的选项是:D 因为a是数组名,是一个常指针,对常量++、--是非法的。通过在电脑端vc软件中,书写代码D的运行(下图),可以看出a++是非法的,编译过程中会直接报错,所以说D选项连编译都不能通过,更加不能正确输出a数的组全部元素l。