最坏情况就会导致程序崩溃。
*******************************************************************/
/********************************************************************
数组是一断连续的内存空间,来存储多个特定类型的对象。
指针用来存储单个内存地址
所以数组和指针不是相同的结构,不能互相转换。
数组变量是一个常量,就算指针变量指向相同的地址或者一个不同的数组,
也不能把指针赋值给数组变量。
我们可以把数组变量赋值给指针时,世界上把指向数组第一个元素的地址赋值给指针。
要注意的是:指针需要和数组元素类型保持一致,除非指针是void类型。
********************************************************************/
int myarray = {1, 2, 3, 0};
int *ptrarray = myarray;//*ptrarray = &myarray[0];
cout 《 *ptr 《 endl;
//ok上面的操作时正确的。来看下面的错误
//myarray = ptrarray;
//myarray = myarrays;
//myarray = &myarrays[0];
/*******************************************************************
结构体和指针。 与数组类似,指向结构体的指针存储了结构体第一个元素的
内存地址。 结构体的指针必须声明和结构体类型保持一致 或者为void
*******************************************************************/
struct person{
int age;
char *name;
};
struct person first;
struct person *ptrstruct;
first.age = 22;
char *fullname = "full name";
first.name = fullname;
ptrstruct = &first;
cout 《 first.age 《 ptrstruct->name 《 endl;
return 0;
}