C语言,定义中文二维数组问题?

查看:222
本文介绍了C语言,定义中文二维数组问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

char levelNames[5][10] = {"贵人"}; 为什么定义了二维数组,却赋值为一维数组内容?

解决方案

首先,在C语言里,所谓的数组,都是栈里的一段连续空间,不管几维数组,都可以看成和一维数组一样的结构,因为空间都是连续的。

我们都知道,int a[4],这个数组,在取值是可以使用 *,比如 a[2] 就是 *(a + 4)

那么,当我们定义一个二维数组,int b[2][3]a[1][2] 我们也可以写成 *(b + 1 * 3 + 2)

所以你的问题,其实是,当你定义了一个字符型的二维数组时,相当于定义一个字符串的一维数组,只是C语言里并没有字符串类型,通过字符数组来实现是一种常用的方式。

但是请注意这种方式定义和用指针定义有本质上的区别。

这篇关于C语言,定义中文二维数组问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆