C++ Void指针代替int类型的指针
我是C/C++的初学者,我正在努力学习指针 下面是我创建指针数组的代码,指针数组中的每个元素都指向数据数组中的元素:C++ Void指针代替int类型的指针,c++,arrays,pointers,void,C++,Arrays,Pointers,Void,我是C/C++的初学者,我正在努力学习指针 下面是我创建指针数组的代码,指针数组中的每个元素都指向数据数组中的元素: #include <iostream> using namespace std; //Pointers reference article //https://www.programiz.com/cpp-programming/pointers-arrays /* Array of pointers */ const int MAX = 5; int main()
#include <iostream>
using namespace std;
//Pointers reference article
//https://www.programiz.com/cpp-programming/pointers-arrays
/* Array of pointers */
const int MAX = 5;
int main(){
int arr[MAX] = {1,2,3,4,5};
int* ptr[MAX];
cout << "Create the handle of each element in data array to the ptr array: " << endl;
for (int i=0; i<sizeof(arr)/sizeof(arr[0]);i++)
{
ptr[i] = &arr[i];
cout<<"ptr["<<i<<"] = " << ptr[i] << endl;
}
cout << "Display the contents of array using 1:1 ptr array:"<< endl;
for (int i=0; i<sizeof(arr)/sizeof(arr[0]);i++)
cout<<"arr["<<i<<"] = " << *ptr[i] << endl;
system ("pause");
return 0;
}
#包括
使用名称空间std;
//指针参考文章
//https://www.programiz.com/cpp-programming/pointers-arrays
/*指针数组*/
常数int MAX=5;
int main(){
int-arr[MAX]={1,2,3,4,5};
int*ptr[MAX];
你可以问自己一个问题吗?空虚是什么意思
所以你有一个空指针-这意味着它指向空
它可以是任何东西——任何整数、结构、对象、浮点
了解情况
然后编译器试图去引用它-所以它举起手说-我没有任何线索
不管是哪种情况,最好还是避免使用虚空指针。你需要问自己一个问题:虚空是什么意思
int* ptr[MAX];
所以你有一个空指针-这意味着它指向空
它可以是任何东西——任何整数、结构、对象、浮点
了解情况
然后编译器试图去引用它-所以它举起手说-我没有任何线索
无论是哪种情况,都可以避免使用空指针
int* ptr[MAX];
ptr
是指向int
的指针数组
当你换到
void* ptr[MAX];
然后,ptr
是指向void
的指针数组。它不会在第一个cout
cout<<"ptr["<<i<<"] = " << ptr[i] << endl; // ok - printing the address
cout
ptr
是指向int
的指针数组
当你换到
void* ptr[MAX];
然后,ptr
是指向void
的指针数组。它不会在第一个cout
cout<<"ptr["<<i<<"] = " << ptr[i] << endl; // ok - printing the address
<代码> >你取消代码>空格*>代码>,你得到的是 Value>代码>。我不太清楚你会做什么。没有语言C/C++。一个不同的语言C和C++。这个代码显然不是C。任何内容,无论类型如何,因此它指向的对象的类型是未知的。取消引用指针(如*ptr[i]
中,其中ptr[i]
是指针)它的点的类型必须知道。@ DoDaD2000:你不能取消<代码>空白>代码>!奥拉夫:这是我的观点。如果你引用<代码>空白>代码>,你就得到了<代码>空洞。我不太清楚你会做什么。没有语言C/C++。一个不同的语言C和C++。这个代码是清楚的。不是C。void
指针的全部意义在于它可以指向(几乎)任何东西,而不考虑类型,因此它指向的类型是未知的。要取消引用指针(如*ptr[i]
,其中ptr[i]
是指针)它指向的类型必须是已知的。@Dolda2000:您不能取消引用void*
!@Olaf:这有点像我的观点。