若有定义int x, *p; ,则正确的赋值表达式
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/13 03:22:01
结果是3.原理如下:--是自减运算符,也就是说--p可以等同于p=p-1;因为p是地址,所以p的自减运算是相当于往前移一个位置,原来p是指向a[2],往前移一个位置,p就指向了a[1],所以*--p就
p[0]=a[1]是将a[1]数组的地址赋值给了p[0]为了更好的理解,我们定义一个int*q;q=p[0];这样*(p[0]+1)就等价于*(q+1)了,由于q是int型的指针并指向的a[1]的第0
答案是C解决这类题型首先要分清类型.A错,虽然p的类型是(int**),a的类型是(int**),但是数组名代表的地址也不能改变.B错,因为p[0]的类型是(int*),a的类型是(int**).C对
*(p+1)=3楼主追问chars[10]={‘A’,‘\0’,‘B’,‘C’,‘D’};则strlen(s)的值为strlen是计算字符串长度,遇到'\0'结束返回长度,所以是1structnum{
*p=a[0]*(p+1)=a[1]...*(p+5)=a[5]
a[3]p=a,*(p+3)=*(a+3)=a[3]
(x=1,y=z=2,y++,z++)逗号表达式按顺序从左到右执行,最后整个表达式返回最右值.所以最后返回z的值2,然后z再自加1.
intx=1;x--
选择BAa表示4C*p表示的就是a的值也就是4D两个都是值
int*p=&x;
首先(*p)[3]是一个指针数组,意思就是p这个指针是指向一个含有3个元素的数组的,那么p指针每一次加1就相当于把p中存的地址加6(前提是int类型占2个字节,在VC中是占4个字节).举个例子:int
楼上回答很好.inta[5]={1,3,5,7,9},*p;等价于inta[5]={1,3,5,7,9};int*p;即p是一个指向整型的指针就好理解了
结果其实就是x=z++先赋值再自加,结果是2a=(b,c)这种运算,实际上就是a=c当然前面的运算也是要算的就这个题就是相当于x=1;y=z=2;y++;x=z++
D显然是a[5]就越界了.a是因为对p+5的地址进行解引用的出来的不知道是什么哦再问:答案是C,A怎么错了能具体说下吗再答:p是指针它的地址加5的话只是他的地址加了变成了别的内存单元而和原来p指向的内
a是个常量,不能变化,但是p是个指针变量,可以加减,p的加减与p的类型有关,如果p是个int则,每次加四个字节,就是int型的长度,其它的也是相同的.char每次加一个字节.p+5代表第六个数值的地址
A,p是一个指针,它存的是一个地址,而“&”是取地址符号,故p=&x表示把变量x的地址取出来存在指针p内,即让p指向x
选择D,这是一个二维数组指针的问题.
C)元素a[6]的地址
考虑到数学软件maple中有函数nextprime及prevprime,我把题目改写一下.定义:N(x)=nextprime(x)猜想:对于任意素数p,q,存在无数组正整数(x,y),使得N(p^x)