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

Cszie 结构体赋值异常

2012-01-05 
Cszie 结构体赋值错误源码如下:typedef struct{int xint yCsize size}IntStur//在函数中初始化IntStur

Cszie 结构体赋值错误
源码如下:
typedef struct
{
  int x;
  int y;
  Csize size;
 }IntStur;

//在函数中初始化
IntStur stur[] = {
{1,2,Csize(0,0)},
{2,2,Csize(0,0)}
};
出现错误提示
error C2440: 'initializing' : cannot convert from 'const int' to 'IntStur '
  No constructor could take the source type, or constructor overload resolution was ambiguous

但是在vc2010下编译和运行都正常

[解决办法]
这个问题首先得理解指针常量和常量指针的区别,简单的说指针常量即指针是常量,也就是指针的指向不能再改变了。常量指针即指针指向的内容是常量,即指针指向的内容是不能改变的。
一般区分这两种指针可以看const的位置,如果定义的时候再 * 前则为常量指针,在 * 后面则为指针常量。问题中对const变量ic取址即类似于定义了一个常量指针,而 int *const cpi则定义了一个指针常量。两个完全不一样的东西赋值,因此会报类型转换错误!


这个是我找的,你看下,你这个代码是这里报的错吗
在看看初始化的时候是怎么回事
有没有类型转换这样的动作
[解决办法]

CSize??

[解决办法]
改用SIZE结构体试试。

热点排行