都正确,你要知道,数据在内存当中的存储方式。你的*(*(a+1)+2)就是一行二列的元素,那就是6.而*(*(p+5))就是偏移量为5的那个元素,还是6啊。你的数组虽然是二维数组,但在内存当中还是以顺序的方式存放数据的。了解了就知道怎么回事了。 (提醒,别忘了数组是从0开始的,就是0行...
a[3][4] = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}};for(int i=0; i<3; i++){for(int j=0; j<4; j++){printf("%4d", *(*(a + i) + j));}printf("\n");}} 四、运行测试 0 1 2 3 4 5 6 7 8 9 10 11 ...
include <stdio.h> define N 10 main(){ int a[N]={1,2,3,4,5,6,7,8,9,10};int i,j,t;printf("Before:\n");for(i=0;i<=N-1;i++)printf("%4d",a[i]);printf("\n");for (i=0,j=N-1;i<j;i++,j--){ t=a[i];a[i]=a[j];a[j]=t;} printf("After...
int b[2][8]={1,2,3,4,5,6,7,8,9,10,11,12}; // 相当于a[2][8],一共可以保存16个int,这里你写到17会报错 int c[5] = {1,2,3,4,5};printf("int类型sizeof[%d]\n",sizeof(int)); // int型sizeof结果看编译器和操作系统的。这里得出4,说明我这里是4个字节 ...
{char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i; i=8; p=aI; printf(“%s、n”,p——3); } (25)以下程序的运行结果是 A)运行后报错B)6 6 C)6 12 D)5 5#include “stdio.h” main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12,}; int...
这是定义了整形数组。这是将数组中一次赋值:a[0]=1,a[1]=2···,a[8]=9。a[],代表了整形数组。 [] 这个括号里可以有值也可以没有,因为后边大括号里已经有了,所以一般 [] 中不放值。这句等价于 int
3行4列,第1行是{1,2,3,4},第2行是{5,6,7,8},第3行是{9,0,0,0}。而a[1][3]是第2行4列的值,它是8。
按行排列的,先排列第二维的,然后在排列第一维。二维数组实际的存储还是转换为一维数组来实现的。每个a[i][j]实际对应a[i*M+j],M是第二维的长度。
最大的是12,下标是11,最小1,下标0,答案就是11 0,从答案看选择B
include"stdio.h"int main(){int i,a[10];for(i=0;i<10;i++) scanf("%d",&a[i]);printf("1 2 3 4 5 6 7 8 9 0");}include"stdio.h"int main(){ int i,j,t,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0; i<9; i++) { f...