关于二维数组测试浅析
来源:互联网 发布:智能家居网络拓扑图 编辑:程序博客网 时间:2024/05/29 07:51
今天在聊天中有一个问起来关于数组的问题,
自己就是挺喜欢帮助朋友们解决问题的,也不是为了什么。帮助朋友真心觉得高兴。
废话少说了,
先看下面代码,看完代码然后解释,或许过于简单,但是我觉得很有意义,就写在这里记录下。
#include"stdafx.h"#include <stdio.h>char *change(char s[ ][20], char t[ ]);int main(void){ int i; char s[4][20], t[10], *p; //申请一个4行20列的二维数组,和一个10的一维数组,和char类型指针 printf("请输入 ");for(i = 0; i < 4; i++)scanf("%s", s[i]); //向每行中存入字符串p = change(s, t);printf("%s\n", p); return 0;}char * change(char s[ ][20], char t[ ]){ int i; for(i= 0; i < 4; i++) { t[2*i] = s[i][0]; t[2*i+1] = s[i][1];//printf("%s\n",t[2*i]);//printf("%s\n",t[2*i + 1]); } t[2*i] = '\0'; return t;}
单步调试,然后想起来在学校的时候经常遇到这样的问题来,估计问问题的也是在上学。
解释代码中的几个关键地方:
第一:二维数组么,就是数组的数组,双重数组。看这里的s数组就是一共有4条,每条20个的四个数组或者也叫做所谓的二维数组。
第二:t数组。带入一个值你就会觉得恍然大悟了,其实这里的t[2*i ]就是从0到9,就是正好10个数的一维数组。
最后,引用这里的一个解释,也挺有帮助:
关于二维数组有个对比
#define M 250
#define N 520
int a[M][N]; 对比int a[M * N];
说前者占用空间是int [M * N] + int *[M]
后者占用空间是int [M * N]
假设0 < i < M, 0 < j < N
访问a(i,j)
前者用 a[i][j]
后者用 a[i * M + j]
前者速度占优
后者内存占优
希望对大家有所帮助。
- 关于二维数组测试浅析
- 浅析二维数组
- 二维数组测试
- 关于二维数组
- 关于二维数组传参做形参
- 关于二维数组传参做形参
- 关于二维数组
- 8.10关于二维数组
- [测试]关于一维数组和二维数组与指针的某些关系
- 关于指针??二维数组讨论
- 关于二维数组new小结
- 关于二维数组与指针
- 关于Java中的二维数组
- 关于C++ 二维数组初始化
- 关于二维数组的感想
- 关于二维数组传参
- C语言--关于二维数组
- 关于二维数组名是什么?
- 为什么有了wait函数族还需要SIGCHLD信号
- js实现模拟数字密码输入键盘
- UVA 10313 Pay the Price
- 【Android】应用获取用户最高权限
- oralce sql 4
- 关于二维数组测试浅析
- PHP获取IP地址所在地信息(使用纯真IP数据库qqwry.dat)
- Solr原理
- 一些免费的API
- 位图和矢量图区别
- 十种排序方法
- 如何查看MATLAB函数的源代码
- C#通过NCO 调用RFC(写出)
- TCP校验和详细讲解和计算