首页 > 其他分享 >C语言数组(9)--- 数组名(2)

C语言数组(9)--- 数组名(2)

时间:2023-09-02 22:05:45浏览次数:39  
标签:arr int 二维 C语言 --- 数组名 数组 sizeof

一.导入

我们上篇文章讲了一维数组的数组名,接下来我们将介绍二维数组的数组名,我们先来猜一下以下代码执行的结果是多少:

#include<stdio.h>
int main(void)
{
	int arr[3][4];
	int sz = sizeof(arr);
	printf("%d",sz);
	return 0;
}

A. 3

B. 4

C. 12

D. 48


答案:D,解析:我们之前说过二维数组是以矩阵形式的,有行与列之分,那么就可以得出整个数组的大小为 行x列 也就是4x3,由于这是一个整型数组,每一个元素的大小都为4个字节,那么就是 4x3x4 = 48,故选D

我们之前说过数组名代表数组首元素的地址(2种特殊情况除外),那么在二维数组中是不是也是这样呢,如 arr; 这段代码代表着什么呢?

其实二维数组与一维数组不同,二维数组数组名是代表第一行的地址,如图所示:

C语言数组(9)--- 数组名(2)_二维数组

由此我们可以用这个结论来计算二维数组的行数,代码如下:

sizeof(arr)/sizeof(arr[0]);

既然能计算出二维数组的行数,那么我们也可以计算出二位数组的列数,我们只需要将行数除以第一个元素就可以得出二维数组的列数,代码如下:

sizeof(arr[0])/sizeof(arr[0][0]);

程序运行结果如下:

C语言数组(9)--- 数组名(2)_二维数组_02

我们再来看一下printf()函数中每一个参数的值

sizeof(arr); -----> 48
sizeof(arr[0]); ----->16
sizeof(arr[0][0]); ----->4

                                                                                                                 2023/9/2

                                                                                                                    王起舟

标签:arr,int,二维,C语言,---,数组名,数组,sizeof
From: https://blog.51cto.com/u_16183773/7334903

相关文章

  • 重复索引检查mysql pt-duplicate-key-checker
    索引对于优化数据库中的查询执行时间至关重要,但是索引数量过多或冗余会对性能产生负面影响。虽然pt-duplicate-key-checker是识别MySQL中重复或冗余索引的首选工具,但它可能无法捕获所有重复。测试环境,mysql5.7.27建表结mysql[localhost:5727]{root}(sbtest)>CREATETABLE`sbt......
  • 【230902-2】现有2个红球,2个黄球,3个白球,3个黑球,同色球不加区分,将十个球排成一列,有多少
    【问题】现有2个红球,2个黄球,3个白球,3个黑球,同色球不加区分,将十个球排成一列,有多少种不同的方法?【数学分析】上面的关键就是“同色球不加区分”这句,这句话的潜台词就是“选出的结果无需排列”。人排队肯定是排列的,因为有很多属性不一样,但两个同样规格的球不需要,因为所有属性都一致。......
  • 每周总结-第八周 多线程
    多线程概述:充分利用计算机资源,同时执行不同的操作1.计算机操作系统进程和线程2.使用java来完成多线程的编码3.线程中的常用方法4.线程同步(重点)5.死锁6.生产者消费者模型异步操作系统简介操作系统:本质上就是一个运行在一堆硬件上的巨型软件没有操作系统的话,程序想要操控......
  • C语言读取csv文件并保存到二维数组
     #include<stdio.h>#include<string.h>#include<time.h>#defineMAXCHAR1024#defineMAXCOUNT1000000char*mat[MAXCOUNT][9];//如果放到main里面会有长度限制使应用程序退出,放在外面作为全局变量没有限制。intmain(){clock_tstart,end;start=clo......
  • Oracle-UNDO数据文件被创建在本地
    在Oracle的RAC环境中,UNDO表空间也是被创建在ASM。假如,UNDO表空间的数据文件,有一个被创建在了本地,那如何处理呢?1.删除数据文件会提示ORA-03262:thefileisnon-empty2.正确的方法A.创建新的UNDO表空间createundotablespaceUNDOTBS3datafile'+DATA'size1g;B.切换到新的UNDO......
  • 东方博宜OJ1009 数组逆序 C语言版
    题目描述给你 n 个整数,将其逆序输出。输入第一行一个整数 n (3≤n≤100)代表数的个数。第二行 n 个整数(空格隔开)(这些数在 0∼106 之间)。输出n 个整数(空格隔开)。样例输入3175输出571来源数组问题代码 #include<stdio.h>in......
  • 2023.9.2-假期周进度报告
    本周,主要进行休息,将社会实践照片进行了一个简单的整理,并且完成返校的基本准备,并成功返校。本周日,主要进行休息,完成了一天简单的休息,遇到了返校要准备什么东西的问题,解决方法是过几天再说吧,等开学前一两天再思考吧,现在时间还早。本周一,主要进行休息,完成了又一天简单的休息,遇到了......
  • 443A - Anton and Letters
    A.AntonandLettershttps://codeforces.com/problemset/problem/443/ARecently,Antonhasfoundaset.ThesetconsistsofsmallEnglishletters.Antoncarefullywroteoutallthelettersfromthesetinoneline,separatedbyacomma.Healsoaddedanope......
  • 无涯教程-JavaScript - LOGINV函数
    LOGINV函数替代Excel2010中的LOGNORM.INV函数。描述该函数返回x的对数正态累积分布函数的逆函数,其中ln(x)的分布通常带有参数mean和standard_dev。如果p=LOGNORMDIST(x,...),则LOGINV(p,...)=x使用对数正态分布来分析对数转换的数据。语法LOGINV(probability,mean,s......
  • [代码随想录]Day34-动态规划part02
    题目:62.不同路径思路:首先想到的是数论方法组合数其实就是向右和向下的步数是固定的,就找一个组合的个数就可以了。状态转移方程:一个位置的路径数就是,上面位置和左面位置路径数的和按照动规五部曲来分析:确定dp数组(dptable)以及下标的含义:dp[i][j]:表示从(0,0)出发,到(i,j)有d......