一位数组和二维数组的长度问题

#include <stdio.h>

int main(void)
{
   int array[10];
   printf("%p   %p\n",array+0,array+1);
   printf("%p   %p\n",&array,&array+1);
   int array1[2][3];
   printf("%p   %p\n",array1+0,array1+1);
   printf("%p   %p\n",&array1,&array1+1);
}输出的结果是↓0028FE98    0028FE9C0028FE98    0028FEC00028FE80    0028FE8C0028FE80    0028FE98

输出的第一行 我能够理解 移动了4个字节,第二行应该是移动40个字节,但是结果不太明白 C0减去98 是28 为什么不是是40呢? 求大神解惑
时间: 2024-12-16 12:44:43

一位数组和二维数组的长度问题的相关文章

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节 { printf("\n%p,%d", p, *p); } getchar(); } 指针数组 #inclu

7、一维数组和二维数组耳朵创建,输出,Arrays.fill()替换

package com.xxx.xxx; import java.util.Arrays; public class demo8 { /** * 1.初始化一维数组 使用一维数组 * 2.初始化二维数组 使用二维数组 * 3.填充替换数组元素 * @param args */ public static void main(String[] args) { //1.第一种初始化方式 int arr[] = new int[]{1,2,3,4,5,6}; //一维数组 //1.1.第二种初始化方式

JavaScript - 一维数组、二维数组基础

<html> <head> <head> <body> <script language="javascript"> // 数组 var arr = ["wjp", 520, 'wcc', 13.14] ; for(var i=0; i<arr.length; i++){ alert(arr[i]); } // 数组为空undefined var arr2 = ["wjp",,51

java数组(一维数组,二维数组)

数组初始化: 1,动态初始化:数组定义与为数组分配空间和赋值的操作分开进行 2,静态初始化:在定义数组的同时就为数组元素分配空间并赋值 3,默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此,数组分配空间之后 每个元素也被按照成员的规则被隐士的初始化值 ------------------------------------------------. 一维数组: package day06; import java.util.Date; /*** * 数组演示 * 数组的声明: * t

C#一维数组,二维数组,多维数组

所谓的数组,就是相同数据类型的元素的元素按一定顺数排列的集合,就是把有限个类型相同的变量用一名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号称为下标.组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量,数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式.这些按序排列的同类数据元素的集合成为数组. 数组又分为一维数组,二维数组,多维数组 一维数组用一个整数来索引,多维数组用两个或多个整数来索引. 一.数据类型[] 变量名

16.10.20 4th 1蛤蟆爬井 2一维数组 3二维数组

摘要 1蛤蟆爬井 2一维数组 3二维数组 例子 井深10米, 蛤蟆白天爬5m,晚上落4米,求几天爬出来. //思路,用循环语句来做,for因为是未知次数所以排除,while 先判断后运行排除, dowhile,先爬在判断所以可以 int gaodu = 0; int tianshu = 0; boolean tianse = true; do{ if(tainse){ //白天爬5米 gaodu+=5; //爬完后改黑天 tianse = false; //天数+1 tianshu +=1; }

C/C++ 指针数组、二维数组

一. 二维数组 1> 初始化 int a[3][3] = { {1,0,0}, {0,1,0}, {0,0,1} }; // 这里是 {} , 而不是() 2> 将二维数组当做一维数组处理 void print_array( int * p, int row, int line) { for(int i=0; i<row; ++i) { for(int j=0; j<line; ++j) { printf("%d \n", *( p + i * row + j

C# 数组、一维数组、二维数组、多维数组、锯齿数组

C#  数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请使用集合. 二.一维数组: 声明及初始化: class Program { static void Main(string[] args) { //方法一 int[] num = new int[3];//声明一个长度为3的值类型的数组: num[0] = 3;//为数组赋值: num[1] = 5

java基础中的一维数组和二维数组

1.数组:具有相同数据类型的一组数据的集合. 一维数组 2.创建一维数组 a.数组作为对象允许使用new关键字进行内存分配,使用数组之前,必须首先定义数组变量所属类型,即声明数组.  声明数组: 语法:数组元素类型   数组名字[]; 数组元素类型[]  数组名字: 注释:数组元素类型:决定了数组的数据类型,包括基本数据类型和费基本数据类型. 数组名字:为一个合法的标识符,自己去定义 []:指明该变量是一个数组类型变量,单个"[]"表示要创建的是一维数组. 例如:int arr[];

指针数组和二维数组指针变量

指针数组 概念: 一个数组的元素值为指针则是指针数组. 指针数组是一组有序的指针的集合. 指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量. 指针数组说明的一般形式为: 类型说明符 *数组名[数组长度] 其中类型说明符为指针值所指向的变量的类型. 例如: int *pa[3] 表示pa是一个指针数组,它有三个数组元素,每个元素值都是一个指针,指向整型变量. 1.用一个指针数组来指向一个二维数组. 指针数组中的每个元素被赋予二维数组每一行的首地址,因此也可理解为指向一个一维数