int p new int与int p new

2021-01-10 21:47:40 字数 2613 阅读 5880

1楼:匿名用户

char *buffer=new char[n]表示buffer里存放的char类型字符,文本文件存放方式就是一个字符一个字符存放的,所以读取的时候可以放在buffer里.用read函数读的话就是:read(buffer,n),每次读一个字节直到读完n个字节.

如果是int *buffer=new int[n],用read读就会报错,类型不匹配.int *buffer=new int[n]存放的是int型的,但也可存放其他基本类型的,编译会隐式转换为int型的.

c++int *p 和int *p = new int 有什么区别? 搞不懂int *p;和new出来的指针在内存中的存放位置

2楼:

int *p; // 只是定义一个指针变量,但它还没有在堆内存分配空间。

*p=123; // 错误,因为还没有内存空间可以保存123这个值。

int * p2 = new int; // 为指针变量p2分配了一个内存空间

*p2=123; // 正确,因为此时p2有空间可以保存123这个值。

c++中,int *p=new int是可有可无的吗?

3楼:匿名用户

int *p = new int;

是在堆中给变量分配了一个空间,当用完后需要手动释放。可以使用delete()函数

如果没有int *p = new int; 是不能给p进行赋值的 因为没有分配空间。

你也可以使用malloc分配空间,但最后释放的时候要使用free()函数

4楼:匿名用户

如果是int * p;

*p = 0;

那么结果是不可预知的,可能正常执行,也可能立即崩溃,或者在任何无法预知的时候出现任何无法预知的问题。

如果是int t;

int * p=new int;

p = &t;

将会造成内存泄漏,如果多次出现这样的情况,将会导致程序可用的内存越来越少。

5楼:千江月

不是可有可无的,得看你如何使用

举例:1、 int *p = new int;

*p = 5;

此时p没有空间必须申请

2、int a = 5;

int *p;

p = &a; //p不用重新申请空间,它指向a的空间。。

6楼:匿名用户

看你对p赋值是什么意思了。

如果说让p指向另外一个int *指针可以。

但是如果说你要 *p =1或者什么就不行了。

必须得new int分配空间

int *p=new int; int *p=new int(8); int *p=new int[8]; 编译运行都没问题,具体区别在**呢?

7楼:镭毅

int *p=new int;//定义一个int型的指针,并分配一个元素

int *p=new int[8];//定义一个int型的指针,并分配8个元素的空间

int *p=new int(8);//主要用于定义函数指针:

比如:class a

};void f(void) catch (...)try catch (...)

}int main()

8楼:

第一个p是指向int的指针,第二个p也是指向int的指针,但是赋初值为8,第三个是指向int数组的指针,数组初始大小为8。

“int **p”和“int *p”有什么区别?

9楼:怕不他啊不了

int *p表示的是一级指针,表示p所指向的地址里面存放的是一个int类型的值。

int **p表示的是二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针。

一级指针存放变量的地址,指向的值是变量的内容。如int*p=,p=数组的首地址,*p=数组的第一个值;

二级指针存放一级指针的地址,指向一级指针。如int*p=,int**pp=&p,pp=指针p的首地址,*pp=数组的首地址,**pp=数组第一个值1。

指针数组的数组名传递参数对应为指针的指针即二级指针,二维数组的数组名传递参数对应为数组指针即指向一维数组的指针

一级指针通过形参,可以修改实参中指针所指向的地址中的值。修改不了实参中指针所指向的地址。需要借助二级指针才可以。

10楼:尉诗桃牟画

int*p

:一级指针,表示p所指向的地址里面存放的是一个int类型的值int**p

:二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面存放的是一个指向int的一级指针)

例如:int

i=10;

//定义了一个整型变量

int*p=&i;

//定义了一个指针指向这个变量

int**p1=&p;

//定义了一个二级指针指向p指针

那么取出10的值方式为:

printf("i=[%d]\n",*p);

printf("i=[%d]\n",**p1);

int p下面等价的语句是,int *p[4];下面等价的语句是

1楼 匿名用户 int p 4 是一维一级指针数组,p是指针数组名,这个数组有4个元素,每个元素都是int行指针 int p 4 是一维数组,p是数组名,这个数组有4个int型元素int p是二级指针,即指向一级指针的指针int p 4 我也不懂 int p 4 是指向一维数组的指针,即指向类型为i...

int a intp a与int a

1楼 匿名用户 int p 3 是数组指针,指向有三个元素的数组 p a 0 地址 p a 1 地址 int p是整形指针 p a 0 0 地址 p a 0 1 地址 所以,p每次移动的地址大小是不同的 若有定义语句 int a 2 3 p 3 ,则以下语句中正确的是 2楼 匿名用户 应该选c。 p...

假设有定义int p那么p 0p分别代表什么

1楼 p 0 就是 p 就是p所指向的内存中的值 p是p这个指针本身的地址, p的类型是int p 0 就是p 0 的地址,也就是p p 0 就是 p 也是p p 就是前面说的p 0 比如定义了指针int p,x p x 那p, p, p, p各代表的是什么 2楼 匿名用户 p是指向int 类型数据...