首页 > 其他分享 >C语言之二维数组的奥妙

C语言之二维数组的奥妙

时间:2024-01-30 19:14:34浏览次数:29  
标签:torf int 10d C语言 二维 奥妙 数组 10p ptr

二维数组是什么

二维数组是一个数组,数组的元素是数组

type  arr[N] = { arr[M] };

上图等价于type arr[N][M] N行M列数组,N和M都为整形常量

 

二维数组的存储方法

如图是一个两行两列的二维数组,比如int a[2][2],在内存中是如何存储的采用的是蛇形的方法

 

二维数组的使用

 1 #include<stdio.h>
 2 int main(void)
 3 {
 4     int *ptr;
 5 //    int (*ptr)[2];
 6     int torf[2][2] = {12,14,16};
 7 //    int torf[2][2] = {{12},{14,16}};
 8     ptr = torf[0];
 9     printf("*ptr = %10d, *(ptr+1) = %10d, *(ptr+2) = %10d\n",*ptr, *(ptr+1),*(ptr+2));
10     printf("ptr  = %10p, (ptr+1)  = %10p, (ptr+2)  = %10p\n",ptr, (ptr+1),(ptr+2));    
11     printf("torf = %10p, (torf+1) = %10p, (torf+2) = %10p, &torf[0] = %10p, &torf[1] = %10p, &torf[2] = %10p\n",torf, (torf+1),(torf+2),  \
12     &torf[0], &torf[1], &torf[2]);
13     printf("&torf[0][0] = %10p, &torf[0][1] = %10p, &torf[1][0] = %10p, &torf[1][1] = %10p, &torf[2][0] = %10p\n",&torf[0][0], &torf[0][1], \
14     &torf[1][0], &torf[1][1],&torf[2][0]);
15     printf("torf[0][0] = %10d, torf[0][1] = %10d, torf[1][0] = %10d, torf[1][1] = %10d, torf[2][0] = %10d\n",torf[0][0], torf[0][1],\
16          torf[1][0], torf[1][1],torf[2][0]);
17 
18     return 0;
19  } 

如何用指针表示二维数组

 

指针指向一维数组的首地址——》表示一维数组,int arr[2] ; int *p_one = arr;

 

标签:torf,int,10d,C语言,二维,奥妙,数组,10p,ptr
From: https://www.cnblogs.com/lzqd/p/17997762

相关文章

  • C语言学习第九天
    一、分支语句(if switch)语法结构:if(表达式)语句;if(表达式)语句1:else语句2;//多分支if(表达式)语句1;elseif(表达式)语句2;else语句3;示例代码:intmain(){ intage=0; printf("输入你的年龄:"); scanf_s("%d",&age); if(age<18) pr......
  • 【实战项目】想自己通过C语言编写贪吃蛇吗?先来学习一下什么是WIN32API
    WIN32API前言大家好,很高兴又和大家见面了!!!在开始今天的内容前,咱们先闲聊一下。博主是从2023.8.19号晚上23:28左右正式开始接触C语言,在此之前,我也只是一个对编程一窍不通的小白,我的本科专业是给排水科学与工程,一个就业前景还不错但是不太适合我本人的专业。在经历了一些事情之后,我......
  • 【C语言进阶篇】动态内存常考笔试题
    (文章目录)......
  • 二维动态规划(下)
    二维动态规划(下)115.不同的子序列//自底向上intnumDistinct(char*s,char*t){constintMOD=1e9+7;intlenS=strlen(s);intlenT=strlen(t);//dp[i][j]表示在s中前缀长度为i的字符串所包含的所有子序列中,有多少个子序列等于t中前缀长度为j的......
  • 二维数组
    动态初始化内存图练习......
  • C语言学习3
    关键字auto是我们一开始在{}创建变量的时候,他会自动创建等出{}会自动销毁里面的变量,但一般我们所用的那些符号都会自带一个auto的属性,也就一般省略不写了break,跳出循环,和for;while;do while;continue一起用case:switch....case.....default两个经常一起用,分支语句char:数据类型const:常......
  • Linux C语言 检测IP冲突
    分析一个基于C语言实现的IP冲突检测工具。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<stdbool.h>#include<getopt.h>#include<arpa/inet.h>#definedbg(fmt,args...)printf("\033[1m[%s]%03d:"fmt&quo......
  • C语言设计模式精要
    在C语言中,设计模式是一种常见的方法,它可以帮助我们更好地设计和实现软件系统。设计模式是一种面向对象的设计模式,它可以帮助我们更好地组织和管理代码,提高代码的可读性和可维护性。在C语言中,设计模式主要包括以下几种:单例模式、工厂模式、观察者模式、策略模式、装饰模式等。单......
  • 二维凸包复习笔记
    Graham扫描法向量的叉乘:平行四边形面积,顺负逆正,x1y2-x2y11.确定1个凸包上的点:纵坐标最小(纵坐标相同时横坐标最小)的点2.极角排序3.单调栈维护凸包点击查看代码//二维凸包#include<bits/stdc++.h>usingnamespacestd;structt1{ doublex,y;}t[100005];ints[100......
  • 微信小程序:生成二维码
    wxml<view><buttonbindtap='createQrcode'type="primary"style="width:400rpx;margin-top:400rpx;">生成二维码</button><canvasid='qrcode'type="2d"style='width:300rpx;height:30......