ldcf.net
当前位置:首页 >> mAin() {int A[10]={1,2,3,4,5,6,7,8,9,0},*p; p=A... >>

mAin() {int A[10]={1,2,3,4,5,6,7,8,9,0},*p; p=A...

这里是输出地址的16进制值 假如1个整数是2个字节,则p+9 比p多了2*9 =18,为16进制的12H,加上194H,就是1A6H,答案是D 如果1个整数占4个字节,则p+9 比p多了4*9 = 36,为16进制的24H,加上194H,得到1B8,题目中没有答案

我运行出来结果是10 环境是VS2008 int a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%d",*p+9);

main( ) { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p-2; //*p=&a[3]把a中的3索引号地址给指针p,3索引号处为4,因为索引是从0算起 //*q=p-2把p的地址减2个int位,即1处的索引号地址给指针q,1处的索引号处的值为2 printf("%d\n",*p+*q); ...

printf("%x\n",p); //p指向a[0],其值为地址值,这个值由操作系统管理,人不能确定。 printf("%x\n",p+9); //p+9的值应该比p的值大36,因为,在32编译系统中,整型占四个字个。第9个整型元素应该在第0个元素后面4*9=36字节。

这个函数的功能是将输入的指针所指向的后一个变量赋给指针指向的变量。第一个for循环,i为2满足条件,将a[3]赋值给a[2],数组变为{10,9,7,7,6,5,4,3,2,1},同理第二次循环数组变为{10,7,7,7,6,5,4,3,2,1},第三次为{7,7,7,7,6,5,4,3,2,1},运行...

printf("%x\n",a) // 输出194说明数组的首地址的十六进制表示为194,也就是1×16²+9×16+4=404 printf("%x\n",a+9);// a+9表示int型数组首地址后的第九个元素的地址,也就是404+9×2=422(每个int型数组元素占两个字节,编译器不同int可能占4...

可能初学者没懂题的意思,这道题main()函数逻辑很清晰,关键在于f()函数我一开始看时也没懂什么意思,他主要是把数组第3到第6元素乘以2其余的不变(相信你们会for循环),然后再循环输出得到1,2,6,8,10,12,7,8,9,10,的结果。

你的程序的确很绕埃但是在我想了一下换是明白了。: 你只要把你每次改变b记下来就明白了 我给你说10吧 28也是一样的 首先b = 2; 之后fun函数传过去了a[2]的地址就是3 ,经过运算函数返回了b的值是5 ,在接着就是 b=fun(&a[i])+b;这句 最后b就被...

选择 Bint a[][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};相当于int a[][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 0, 0}};而 int * p = *(a + 1);表明 p 此时指向 5 所以要想输出9, p 需要 += 4; 剩下就是 * 和 ++ 优先级的问题了. ===========...

结果是两个地址值(以十六进制显示出来),其中第一个是a[0]的地址,因为*p=a[0], p=&a[0], 即指针p指向的是数组a的首地址(即a[0]的地址)。望采纳

网站首页 | 网站地图
All rights reserved Powered by www.ldcf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com