Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么';这两个指针代码的区别是什么_C++ - Fatal编程技术网

C++ 什么';这两个指针代码的区别是什么

C++ 什么';这两个指针代码的区别是什么,c++,C++,我找到了这两个不同的来源,但它们的作用完全相同。我想知道是否有区别,但我想不出来 有人能告诉我区别在哪里,我什么时候应该用哪个 这是第一个: void function1(int *x) { *x = 100; } int main() { int var1 = 10; function1(&var1); cout << var1 << endl; } void函数1(int*x){ *x=100; } int main(){

我找到了这两个不同的来源,但它们的作用完全相同。我想知道是否有区别,但我想不出来

有人能告诉我区别在哪里,我什么时候应该用哪个

这是第一个:

void function1(int *x) {
    *x = 100;
}

int main() {
    int var1 = 10;

    function1(&var1);
    cout << var1 << endl;
}
void函数1(int*x){
*x=100;
}
int main(){
int var1=10;
函数1(&var1);

cout
int*x
是一个指针,而
int&x
是一个引用。可能最大的区别是你不能更改引用指向的位置。

第一个是指针,第二个是引用。这些想法有一些相似之处,但也有不同之处


指针是C和C++机制,有点“纯”但是,对于指针指针等高级概念,你只需要更多的注意。引用是C++,更安全和更隐式,因为引用在使用引用的语句时使用与普通变量相同的语法。如果你想使用或改变它的值,指针就更显了,因为你必须明确地引用它。在

function1
中,
nullptr
是一个有效的参数(应该选中)。有一种样式约定更倾向于使用指针来修改对象。
void function2(int &x) {
    x = 100;
}

int main() {
    int var2 = 10;

    function2(var2);
    cout << var2 << endl;
}