我的最新理解,指针初始化就是确定指针的指向,而不是对指向的单元给初值。
----------------------------------------------
因为对指针赋值,有两层含义,一种是对指针本身赋值,一种是对指针所指向的单元赋值,我理解,
指针的初始化,应该是第一层含义,即确定它的指向。int *p;
p= new int;
此时p指向一块内存单元,但是这个单元没有被赋值。
但是p=new int; 这一句,就是指针的初始化。而不是赋值。
如果后面有:
*p=10;
则这才是赋值。我的理解对吗?谢谢大家。
----------------------------------------------
因为对指针赋值,有两层含义,一种是对指针本身赋值,一种是对指针所指向的单元赋值,我理解,
指针的初始化,应该是第一层含义,即确定它的指向。int *p;
p= new int;
此时p指向一块内存单元,但是这个单元没有被赋值。
但是p=new int; 这一句,就是指针的初始化。而不是赋值。
如果后面有:
*p=10;
则这才是赋值。我的理解对吗?谢谢大家。
另外:
直接:p= new ;
就可以了,因为p已经被定义成整型指针了~~~
不是吧,写成下面这样,会报错的。#include <iostream>
using namespace std;
int main()
{
int *p;
p=new int;
//p=new; //写成这样会报错的。
*p=9;
cout << *p << endl;
return 0;
}
*p = 10;
p指向new出来的int,跳过一层就是把10赋值给了int.