在c中使用显式/原始指针
发布时间:2020-12-16 09:39:44 所属栏目:百科 来源:网络整理
导读:我读到在C中使用原始指针是不好的.相反,我们应该使用auto_ptr.在下面的代码中,我填充了在main()中创建的foo()中的向量.我做得对吗,或者没有使用显式指针有更好的方法. #include iostream#include vector#include stringusing namespace std;void foo(vectors
我读到在C中使用原始指针是不好的.相反,我们应该使用auto_ptr.在下面的代码中,我填充了在main()中创建的foo()中的向量.我做得对吗,或者没有使用显式指针有更好的方法.
#include <iostream> #include <vector> #include <string> using namespace std; void foo(vector<string> *v){ (*v).push_back(" hru"); } int main(){ vector<string> v; v.push_back("hi"); foo(&v); for(int i=0;i<v.size(); i++){ cout << v[i]; } } 解决方法
C使用引用来完成您要执行的操作:
#include <iostream> #include <vector> #include <string> using namespace std; void foo(vector<string>& v){ v.push_back(" hru"); } int main(){ vector<string> v; v.push_back("hi"); foo(v); for(int i=0;i<v.size(); i++){ cout << v[i]; } } 引用和指针是相似的,有一个非常重要的区别:没有空引用这样的东西(在C中Constructing one是Undefined Behavior你可以构造一个,但这样做被认为是黑客). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |