C++primer P178中的一个例题中关于数组的长度有关问题
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 应该是数组名,表示数组首地址
source!=arr1+sz 这是条件表达式
source=arr1+sz 这是赋值操作,不能作为while的条件
[解决办法]arr1是个常量!指针常量。
说source=arr1+sz不可以 指的是这样不可以当作判断条件,,因为这样写,while()一直是1,可能是死循环,,编译是没问题的。