数组名作左值怎么用

[复制链接]
查看11 | 回复5 | 2016-12-2 00:11:50 | 显示全部楼层 |阅读模式
数组名作左值时,表示数组本身,好像不能赋值,作右值时表示首元素地址,一般我们都用右值吧,这样解释对吗???
给大家举个例子, 作左值可以,但不能被赋值, 如int a[10];sizeof(a);这里的a,就是当作左值来使用,代表数组本身,这样解释还行吧!

回复

使用道具 举报

千问 | 2016-12-2 00:11:50 | 显示全部楼层
首先你要明白数组名是什么,它是一个指针,类型为你所定义的数组的类型,而这个指针与普通定义的指针的最大区别就是它是常指针,意思就是它的值不能被改变,所以不能作为左值被赋值!例子:int a[9];int *p;其中a和p除了一个是常指针之外没有区别。p可以作为左值。...
回复

使用道具 举报

千问 | 2016-12-2 00:11:50 | 显示全部楼层
数组名一般表示数组首个成员的地址。一般不做左值吧。 问题补充回答:数组名没法做左值的,估计编译都过不了。作右值是表示首元素地址,可赋给指针使用。...
回复

使用道具 举报

千问 | 2016-12-2 00:11:50 | 显示全部楼层
要看是什么类型的数组了,如果是char型的,若进行赋值的话可以用strcpy()函数。...
回复

使用道具 举报

千问 | 2016-12-2 00:11:50 | 显示全部楼层
数组名可以当指针用 表示一个地址但是这个地址是地址常量 不能被赋值...
回复

使用道具 举报

千问 | 2016-12-2 00:11:50 | 显示全部楼层
数组名做不了左值...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行