首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

后置++在赋值号左侧

2013-01-05 
后置++在赋值号左边short* strs[3]short str1[1] {1}short str2[1] {2}short str3[1] {3}strs[0

后置++在赋值号左边
short* strs[3];
short str1[1] = {1};
short str2[1] = {2};
short str3[1] = {3};
strs[0] = str1;
strs[1] = str2;
strs[2] = str3;

//temp(strs, str1, 0, 3);
short l = 50, r = 60;
*strs[0]++ = l;
*strs[1]++ = r;

 int p[3] = {1, 2, 3};
// 
// for (int i =0, j =50; i < 3; i++, j++)
// {
 *p++ = l;
// }

为什么编译的时候*strs[0]++ = l;没错,*p++ = l;却提示“'++' needs l-value”?
[解决办法]
因为p是数组名,是常量指针,不能被改变。
[解决办法]
strs[0] 为指针类型,可以进行++运算,而p为数组类型,不可进行++运算

示例:
int s[] = {1, 2, 3};
int *p = s;
p++;// 正确
s++;// 错误
[解决办法]
写这样的代码,如果自己不能非常确定优先级,就加括号吧,不会累死人的。

热点排行