草庐IT

c++ - 为什么我们可以将取消引用的指针递增到 C++ 中的常量数据?

令我惊讶的是,C++允许递增指向常量数据的解引用指针,而它不应该允许通过指向常量数据的指针。考虑代码:#include#includeusingnamespacestd;intmain(){intx=2;constint*xPtr2=&x;*xPtr2++;cout但是x的值仍然是2。这意味着*xPtr2实际上并没有增加。我也试过*xPtr2=3,但是这次显示编译错误。为什么会这样? 最佳答案 此处++的优先级高于*。因此*xPtr2++相当于*(xPtr2++)由于xPtr2不是常量指针而是指向常量数据的指针,因此在这种情况下递增

c++ - 使用 xptr 在内存中存储和检索矩阵

我希望能够将在R中创建的矩阵存储在内存中并返回指针。然后稍后使用指针从内存中取回矩阵。我在Ubuntu13.01和Rcpp版本“0.10.6”上运行R版本3.0.1(2013-05-16)——“GoodSport”。我试过了...//[[Rcpp::export]]SEXPwriteMemObject(NumericMatrixmat){XPtrptr(&mat,true);returnptr;}//[[Rcpp::export]]NumericMatrixgetMemObject(SEXPptr){XPtrout(ptr);returnwrap(out);}#Thisreturnsa