Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.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
在函数签名中使用*和(&A) 我玩C++,试图理解向量及其签名。 在下面的方法printPrimes中,我需要使用带地址的指针,为什么_C++_Pointers - Fatal编程技术网

在函数签名中使用*和(&A) 我玩C++,试图理解向量及其签名。 在下面的方法printPrimes中,我需要使用带地址的指针,为什么

在函数签名中使用*和(&A) 我玩C++,试图理解向量及其签名。 在下面的方法printPrimes中,我需要使用带地址的指针,为什么,c++,pointers,C++,Pointers,向量和素数不够,因为从主方法printPrimes已经发送了地址 void printPrimes(long long l, long long r, vector<int>* &primes) { // some code } vector<int>* sieve() { vector<int> *prime = new vector<int>(); return prime; } int main() { vector

向量和素数不够,因为从主方法printPrimes已经发送了地址

void printPrimes(long long l, long long r, vector<int>* &primes) {
 // some code
}
vector<int>* sieve() {

 vector<int> *prime = new vector<int>();
 return prime;

}
int main() {
    vector<int> *primes = sieve();
    printPrimes(l, r, primes);  
    return 0;
}
我需要使用地址为的指针

此处,&不表示的地址;它表示对的类型引用

如果你不是这样写的话会更清楚:

vector<int>* &primes
vector<int>*& primes
我需要使用地址为的指针

此处,&不表示的地址;它表示对的类型引用

如果你不是这样写的话会更清楚:

vector<int>* &primes
vector<int>*& primes
< C++ >函数参数,用于按引用传递参数。向量*&素数声明素数是指向向量指针的引用

如果printPrimes表示只打印传递给函数的向量,则签名

void printPrimes(long long l, long long r, vector<int> &primes);
如果功能条正在调用foo-like

foo正在修改指针本身,这种修改也将在bar上看到,并且可以从bar访问分配给p的内存 > P>参数。向量*&素数声明素数是指向向量指针的引用

如果printPrimes表示只打印传递给函数的向量,则签名

void printPrimes(long long l, long long r, vector<int> &primes);
如果功能条正在调用foo-like

foo正在修改指针本身,这种修改也将在bar上看到,并且可以从bar访问分配给p的内存

向量*&primes参数必须按以下方式读取:

指向int向量指针的引用

而不是

向量为int的指针的地址,你是对的,它是无用的

通过引用传递可以像使用指针一样直接操作范围外的任何实例,但这是一种更安全的方法,因为引用不能为null ptr,并且它的存在是自动管理的,无需删除。

向量*&primes参数必须以这种方式读取:

指向int向量指针的引用

而不是

向量为int的指针的地址,你是对的,它是无用的


通过引用传递可以像使用指针一样直接操作范围外的任何实例,但这是一种更安全的方法,因为引用不能为null ptr,并且它的存在是自动管理的,无需删除。

在下面的方法printPrimes中,我需要使用带有地址的指针,为什么?在C++函数中,函数参数是指引用,而不是C中的地址,所以你给出了指向这个函数的指针的引用。使用双指针也可以达到类似的效果,除了调用函数时需要使用&来获取指针的地址。为什么我需要使用reference和*together声明向量*&primes声明primes是指向int元素向量指针的引用。如果要更改指针指向的位置,可能需要它。虽然你不需要这么做,所以停止使用指针。@ MsAlter语句是C++中的一种,也可以是引用,而在C中,当你使用A时,它只被用来获取某物的地址。在下面的方法中,我需要使用指针来说明为什么?在C++函数中,函数参数是指引用,而不是C中的地址,所以你给出了指向这个函数的指针的引用。使用双指针也可以达到类似的效果,除了调用函数时需要使用&来获取指针的地址。为什么我需要使用reference和*together声明向量*&primes声明primes是指向int元素向量指针的引用。如果要更改指针指向的位置,可能需要它。虽然你不需要这么做,所以停止使用指针。@ MsAlter语句是在C++中,也可以是引用,而在C中,当你使用A时,它只被用来获取某物的地址。