二维数组的指针机制:就是按照一维分布的。如:int arr[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};int* p = arr[0];就是说*p从1开始,*p[1]就是a[0][1],*p[2]就是a[0][2],等等,知道*p[11]就是a[3][2]你说的那四个值一样,那是肯定的,都是计算机为这个...
定义数组并赋值时C语言规定下标是这样的,a[n]中的n个元素应该是a[0]...a[n-1]。。因此int a[][4]的写法就是表示,第一维大小没限制,但是第二维数组大小就是4,也就是int a[][4]={{1,2,3,4},{5,6,7,8},{9,10}},明显是3。分析:二维数组的一维大小,即指二维数组...
A、&a[1] B、a++ C、&a[0]+1 D、a+1(七)若有说明语句:int a[ ][3]={1,2,3,4,5,6,7,8,9}; 则a数组的行数为 。A、不确定 B、1 C、2 D、3(八)一个C++程序里有intb, a=2; 则b=a+=a-=a*a; b结果是 。A、 0 B、6 C、- 2 D、- 4 (九)设变量定义:int a=6,b=...
它的地址当然就是这个数组的首地址了,所以数组a的首地址和a[0]的地址相等。代码如下:include <stdio.h> int main(){ int a[10]={1,2,3,4,5,6,7,8,9,0};printf("数组a的首地址为\t%d\n",a);printf("a[0]的地址为\t%d\n",&a[0]);return 0;} 运行结果为:那...
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; ...
B 是不是a[i]?? //是a[i]C p[i] 是相当于a[i],这不是在获取元素a[i]的地址吗? 为什么C也正确??// p[i] 是相当于a[i]A 中为什么能用用p减a??a[p-a]什么意思?? //p的值就是a,所以p-a的值为0,相当于a[0]D 是不是相当于*a[i], 因而不正确?? //...
{static int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d",a[10]); } C语言规定:定义时用a[10],表示a数组有10个元素。其下标值由0开始,所以数组元素a[10]是不存在的。 16.初始化数组时,未使用静态存储。 int a[3]={0,1,2}; 这样初始化数组是不对的。C语言规定只有静态存储(static)...
二维数组的初始化分为:1.按行分段初始化,int a[2][3]={{5,6},{7,8},{9,10}};可以省略行数,但不能省略列数 2.按行连续初始化int a[i][j]={5,6,7,8,9,10};二维数组定义中,行可以不指定,但是列是要指定的。A选项为按行分段初始化int a[3][2] = {{1,2}, ,{2,3}...
include iostream.hvoid main(void){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};for (int i=0;i3;i++){ cout"a[" i"]="a[i] "="a[i][0]endl;for (int j=0;j3;j++)cout"a[" i"]["j"]="*(a[i]+j) "="a[i][j]endl;}}程序执行后输出:a[0]=0x...
C错误 p + i, 显示的是地址,不是数组元素值。应该为*(p + i)b