数值4也就是这个定义数组的第四个数 也就是a[3]char c='a',而'a'代表了ASCLL码,表示的是十进制的97,那么c=97。而'd'也表示的是ASCLL码,意味着十进制的100。所以'd' - c=100 - 97=3 所以就有了4的表达式为a ['d' - c ]数值...
【答案】:D 解析:数组和指针的关系非常密切,因为数组名称单独使用是表示数组的首地址。故可用的表示可能是a[i],p[i],*(p+i),同样&(a[i])表示地址,因此*(&a[i])等同于a[i]。本题答案为D。
public static void main(String[] args) {int[][] a = new int[4][5];int[] b = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};int k = b.length - 1;for(int i = a.length - 1; i >= 0; i--) {for(int j = a[i].length - 1; j >= 0...
记住一个万能公式就行了:(p + i) = p[i]所以:(p+1) = *(*(p+1)) = *(p[1]) = *(p[1] + 0) = p[1][0] = 5;(*p + 1) = *(*(p + 0) + 1) = *(p[0] + 1) = p[0][1] = 2;所以结果就是3了。(...
p=&a[3]就是p指向了a[3],然后p[5]=>*(p+5)就是在a[3]的地址上再往后移动5个,就是a[8]了,当然就是9的值了,答案就是D p
你只要把你每次改变b记下来就明白了 我给你说10吧 28也是一样的 首先b = 2;之后fun函数传过去了a[2]的地址就是3 ,经过运算函数返回了b的值是5 ,在接着就是 b=fun(&a[i])+b;这句 最后b就被改写成了10了 最后输出就是10 第二次循环b的值是10 不是2 这个关键的 那28也就是这个...
include<iostream.h> void change(int *n, int len){ int a, *p= &a;for(int i= 0; i < len/2; i++){ p= *(n+i);(n+i)= *(n+len-1-i);(n+len-1-i)= *p;} } void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};change(a, 10);for(int i= 0; i...
a[i]=c[i];//合并后的数组存入a数组 } return k;//返回合并后的数组长度 } void print(int a[],int n){//打印数组 for(int i=0;i<n;i++){ printf("%d ",a[i]);} printf("\n");} int main(){ int a[20]={1,2,3};int b[20]={4,5,6};int c[20]={7,8,9}...
include <stdio.h>int main(){int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = &a[3], b; b = p[5];printf("%d\n", b);} 因为*p=&a[3]; 表明将a[3]的地址赋值给p,此时p[0]=a[3],因此p[5]=p[0+5]=a[3+5]=a[8]。
include <stdio.h> int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;int i,t;for (i=0;i<5;i++) {t=*(p+i); *(p+i)=*(p+9-i); *(p+9-i)=t;};for (i=0;i<10;i++) printf("%d ",a[i]);return 0;} ...