数组和逗号表达式

注意数组里面的花括号{ },小括号 ( ) 和逗号

逗号表达式的值是:先计算前面的表达式,后计算后面的表达式。

表达式最终的值最后一个表达式的值。

举例1:

int main()
{
	int a[3][2]={{0,1},(2,3),(4,5)};
	int *p;
	p=a[1];
	printf("%d\n",p[0]);//3
	printf("%d\n",p[1]);//5
	printf("%d\n",a[0][0]);//0
	printf("%d\n",a[0][1]);//1
	printf("%d\n",a[1][0]);//3
	printf("%d\n",a[1][1]);//5
	system("pause");
	return 0;
}

定义了一个二维数组,3行2列,但是注意定义的里面有逗号和().

1) 用括号{ }括起来的表示一组(行)元素,如上面的a[0]={0,1}是数组a的第0行元素

2) 而用小括号( )括起来的是逗号表达式逗号表达式的取值最后一个元素的值,计算后的最终值是一个元素。

    所以(2,3)的值是3,a[1][0]=3;(4,5)的值是5,a[1][1]=5.后面没有列出的元素默认是0.

    所以整个数组完整表达出来是:

int a[3][2]={{0,1},{3,5}};

默认的a[2][0]=0,a[2][1]=0

3)想起链表了,用结构体数组初始化链表的时候,因为后面有一个next指针,所以定义结构体数组的时候都是:

P a[10]={{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}}; //注意大括号里还有大括号,P是结构体类型

举例2:

将二维数组第一行的元素也改成逗号表达式

int main()
{
	int a[3][2] = {(0,1),(2,3),(4,5)};
	int *p;
	p = a[0];
	printf("%d\t",p[0]);//1
	printf("%d\t",p[1]);//3
	printf("%d\n",p[2]);//5
	printf("%d\t",a[0][0]);//1
	printf("%d\n",a[0][1]);//3
	printf("%d\t",a[1][0]);//5
	printf("%d\n",a[1][1]);//0
	printf("%d\t",a[2][0]);//0
	printf("%d\n",a[2][1]);//0
	system("pause");
	return 0;
}

此刻a={1,3,5};后续的元素默认都是0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值