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

数组指针混用的有关问题

2012-04-20 
数组指针混用的问题这个程序要实现字符串转换成数组,void main(){char str[]-12345if (*str-||*st

数组指针混用的问题
这个程序要实现字符串转换成数组,
void main()
{
char str[]="-12345";
if (*str=='-'||*str=='+')
{
str++; //此处出现错误error C2105: '++' needs l-value
}
int a=0;

  while (*str)
{
a=a*10+(*str-'0');
str++; //此处出现错误error C2105: '++' needs l-value


}
  if (*str=='-')
  {
a=-a;
  }

printf("%d",a);
}
这个为什么跟数组的定义有关系?,把数组定义成指针就会好了,不能混用?

[解决办法]
数组名可以作为指针来使用,当不可以改变它的值.
[解决办法]
数组名是常量,不能改变她的值;而指针式变量,指针的值可以改变
[解决办法]
数组名不是变量, 是个常量地址,是右值。
指针是个变量, 可以初始化指向一段地址, 是左值。
[解决办法]
数组名不是常量!
数组是一个对象,注意是一个!

数组可以转换成指向其首元素的指针,这个转换而来的结果是右值. 

所以++操作符使得数组发生这一个转换,但是由于++操作要求操作数是左值,所以被检测出erro/

热点排行