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

C++primer P178中的一个例题中关于数组的长度有关问题

2013-01-02 
C++primer P178中的一个例题中关于数组的长度问题//arr1是个数组int *sourcearr1size_t szsizeof(arr1)

C++primer P178中的一个例题中关于数组的长度问题
//arr1是个数组
int *source=arr1;
size_t sz=sizeof(arr1)/sizeof(*arr1);
int *dest=new int[sz];
while(source!=arr1+sz)
*dest++=*source++;
想问下那个while循环中的arr1的值是什么,是数组的长度值吗?
为什么source!=arr1+sz就可以,但是source=arr1+sz就不可以呢?

[解决办法]

引用:
//arr1是个数组
int *source=arr1;
size_t sz=sizeof(arr1)/sizeof(*arr1);
int *dest=new int[sz];
while(source!=arr1+sz)
*dest++=*source++;
想问下那个while循环中的arr1的值是什么,是数组的长度值吗?
为什么source!=arr1+sz就可以,但是sou……

arr1 应该是数组名,表示数组首地址
source!=arr1+sz 这是条件表达式
source=arr1+sz 这是赋值操作,不能作为while的条件
[解决办法]
arr1是个常量!指针常量。
说source=arr1+sz不可以  指的是这样不可以当作判断条件,,因为这样写,while()一直是1,可能是死循环,,编译是没问题的。

热点排行