假定指针变量p定义为"int*p=new int:"
来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 08:14:47
选B因为&a是一个指向数组的指针,而p是一个指向整型的指针,二者不是同一个概念.
D(x%=k)-(k%=5)(x%=k)就等价于(x=x%k)即12%7即5(k%=5)就等价于(k=k%5)即7%5即25-2等于3
&x是指x的地址,相当于指针p,指针p前加*以后就表示指向指针的指针
charm;char*p=&m;
含有p=A[0][0]的肯定错误,因为p是指针,A[0][0]是第一个元素的值,即A、C错误p=&A[0][0]即&A[0][0]的地址给p,肯定正确p=A[0]是正确的,因为二维数组可以看成多个一维
虽然在很多方面数组和指针都能处理同样的问题,但他们之间有个本质的不同.数组b是指针常量,不是变量.所以想a=p、a++和a+=2这样的表达式都是非法的,不能改变指针常量b的值指针运算是c与语言的重要特
x%=(k%=5)为0x%=(k-k%5)为2x%=k-k%5为2(x%=k)-(k%=5)为3D.
(27)若有定义int(*Pt)[3];这种声明可以先把变量名字去掉,也就是int(*)[3],对于*可以这样理解,char*s等同于chars[],所以可以理解为intpt[][3],也就是D中的解
看错了int x[4]={1,2,3,4};int *p;p=x;printf("%p\n",++p); &
答案是ap是个int型数据,
是数组指针,它实际上是指针常量,可以理解为constint*b.所以它的指向是不允许被修改的,++b操作违反了这个规定,运行后会修改b的指向,是不被允许的.所以C不正确.
int*p=&x;
首先(*p)[3]是一个指针数组,意思就是p这个指针是指向一个含有3个元素的数组的,那么p指针每一次加1就相当于把p中存的地址加6(前提是int类型占2个字节,在VC中是占4个字节).举个例子:int
选A因为p=&x*p=*&x&*p=&*&x一个*和一个&抵消了,因此&*&x=&x
选择A因为*p是指针.当x的地址赋值个指针p的时候,他们的地址就一样(数值也是一样).指针的话,要表示数值的话用用*p,指地址的话,只要p就可以.如果加地址符号&,那就值该指针的地址(&*p),也就是
(1)执行x*x,此时x=6,执行完x*x=36(2)执行x-=36,此时x=6,结果x=-30(3)执行x+=-30,此时x=-30,结果x=-60所以最终的结果是-60
int*p=&a;
1.p的定义:int*p=a;//指针p指向数组a的起始地址;2.你可以把a怎么是指向行的?,a是一个一维数组,不是二维数组.你可以理解为a是指向数组的首地址就可以了,a就指向数组的第一个元素a[0]
*p=&a[0]+1=a[1];p指向地址的值为3第二个编译就通不过,因为++时程序员要求改变地址,这显然不可能.inta[2]={1,3},*p;p=&a[0];p++;这才合法.