char *p= new char 与char *p = new char[1]有区别吗

来源:百度知道 编辑:UC知道 时间:2024/05/13 14:25:38

没有区别

进行动态内存分配,char *p= new char 与char *p = new char[1]都是系统自动在内存中的栈区分配一个4个字节的空间作为指针变量p的空间1,然后去堆区申请了一个存1个字符的1个字节的空间2,然后返回这个空间2的地址,这个地址值存到了p变量的空间1中;
虽然从外观上看,char *p= new char 申请一个普通字符变量的空间,char *p = new char[1]申请一个数组,但是这个数组只有一个元素,所以在本质上没有区别,访问的方式都是通过p变量,在使用过程中没有区别

没区别吧