静态二维数组和动态二维数组(C语言)
来源:互联网 发布:windows 高精度sleep 编辑:程序博客网 时间:2024/03/29 22:48
1、理解什么是静态二维数组和动态二维数组
静态二维数组:可以理解为程序中如下定义的数组(定义一个3行4列的静态二维数组)
int [3][4] = {{1,1,1,1}, {2,2,2,2}, {4,4,4,4}};
动态二维数组:可以理解为程序中如下定义的数组(定义一个3行4列的动态二维数组)
#include<stdio.h>#include<stdlib.h>#define ROWS 3#define COLS 4int main(int argc, char *argv[]) { int **ppi = NULL; //定义整形二维数组指针变量 int i; ppi = (int **)malloc( ROWS * sizeof(int));//为3行4列动态二维数组每行的首地址分配内存 for (i=0; i<ROWS; i++) { ppi[i] = (int *)malloc( COLS * sizeof(int));//为3行4列动态二维数组每行分配内存 ppi[i][0] = i; ppi[i][1] = i; ppi[i][2] = i; ppi[i][3] = i; } for (i=0; i<ROWS; i++) { printf("第%d行:%d ", i, ppi[i][0]); printf("%d ", i, ppi[i][1]); printf("%d ", i, ppi[i][2]); printf("%d\n", i, ppi[i][3]); } return 0; }
2、静态二维数组内存布局
图示说明:
1)静态二维数组实质是一个数组,内存空间也是连续的
2)ppi是静态二维数组变量,指向二维数组首地址
3)ppi+0:指向静态二维数组第1行首地址
4)ppi+1:指向静态二维数组第2行首地址
4)ppi+2:指向静态二维数组第3行首地址
3、动态二维数组内存布局
图示说明:
1)ppi是动态二维数组变量,执行二维数组首地址
2)ppi[0]、ppi[1]、ppi[2]分别为每行的首地址
1 0
- 静态二维数组和动态二维数组(C语言)
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- 二维数组和指针(C语言)
- c中动态与静态二维数组
- C语言(二维数组)
- 动态二维数组(C++)
- C语言二维数组
- C语言二维数组
- c 语言 二维数组
- c语言-二维数组
- C语言二维数组
- C语言 二维数组
- C语言 二维数组
- C语言二维数组
- 【C语言】二维数组
- 背包九讲
- 2017 蓝桥杯JavaB组省赛 日期问题
- LeetCode 111. Minimum Depth of Binary Tree
- Leetcode-549. Binary Tree Longest Consecutive Sequence II
- Vue2.0进阶组件篇4 突如其来(时间倒计时组件)
- 静态二维数组和动态二维数组(C语言)
- 170408 汇编-段内转移指令
- Unity3D游戏记录回放插件EZReplayManager(三)
- Windows 10中的PowerShell内置运行软件版本
- 谈谈我对云计算的认识之基本概念(二)
- LeetCode 226. Invert Binary Tree
- IntelliJ IDEA 14 注册码
- 总结了一些web前端常用的cdn
- 关于vertical-align:middle使img标签图片居中的办法