输出结果:6
#include <stdio.h>
int main(void)
{
int a[2][2] = {{1,2}, {3,4}}
int b[2][2] = {{5,6}, {7,8}}
int (*p1)[2] = a
int (*p2)[2] = b
int (*q[2])[2] = {p1, p2} 这样才是正确的定义!
printf("%d\n", *(*q[1]+1))
return 0
}
但在tc2.0和bc3.1中提示非法初始化!
但把
int (*q[2])[2] = {p1, p2}
改成
int (*q[2])[2]
q[0] = p1
q[1] = p2
可以通过!
原因暂不清楚,估计是老旧的编译器不支持太复杂的定义!
其实最好的方法是使用typedef,简单明了,可读性大大提升!
#include <stdio.h>
int main(void)
{
typedef int (*PA)[2] 使用typedef
int a[2][2] = {{1,2}, {3,4}}
int b[2][2] = {{5,6}, {7,8}}
int (*p1)[2] = a
int (*p2)[2] = b
PA q[2]= {p1, p2} 这样可读性是否大大的增加?!
printf("%d\n", *(*q[1]+1))
return 0
}
需要写一个方法,把json数据转换成list集合数据public static List jsonToBean(String data, Object bean) {
List list = new ArrayList()
try {
JSONArray array
try {
array = new JSONArray(data)
for (int i = 0i <array.length()i++) {
Object toBean = getBean(bean)
JSONObject ob = new JSONObject()
ob = (JSONObject) array.get(i)
toBean = jsonStrToBean(ob, toBean)
list.add(toBean)
}
return list
} catch (JSONException e) {
try {
Object obj = null
JSONObject jsonObj = new JSONObject(data)
Object toBean = getBean(bean)
toBean = jsonStrToBean(jsonObj, toBean)
list.add(toBean)
return list
} catch (JSONException e1) {
log.error("Error covert String to JSONObject", e)
e1.printStackTrace()
}
e.printStackTrace()
log.error("Error covert String to JSONArray", e)
}
} catch (SecurityException e) {
e.printStackTrace()
}
return list
}
数组是一个由 固定长度 的 特定类型元素 组成的序列,一个数组可以由零个或多个元素组成。 数组是值类型
数组的每个元素都可以通过索引下标来访问,索引下标的范围是从0开始到数组长度减1的位置,内置函数 len() 可以返回数组中元素的个数。
2.类型的打印,结果的第二种打印方式
3.对元素的修改或者赋值
4.判断数组是否相等:长度、类型
4.数组的地址:连续存储的空间
5.数组的赋值、地址、取值
6.数组的默认值
7.数组的初始化
8.数组的逆置
9.求数组的最大值、最小值、平均值
10.对数组字符串进行连接
11.冒泡排序法的实现
12.数组做函数的参数
13.二维数组:赋值和地址
14.二维数组:打印和输出
15. 指针数组,每一个元素都是地址
17.数组的内存分配