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 类型数据...