c++中字符型指针和字符型数组指针
比如我定义一个字符型数组指针char *p;还需要给它分配内存:p=new char[100];
那如果只是一个字符型指针char *p;是不是默认给它分配1个字节的内存空间而不用再使用new了呢? c++? 指针 字符型变量 内存
[解决办法]
没看懂贴主的意思,指针本身是指向一片内存的地址,指针本身的值是一个地址,大部分环境下是占4个字节,指针的类型只是计算机解释指针的方式,比如你的char *p 就是p按char的方式来解释,p++就是向后移动一个字节,至于内存空间是你要先申请好你想用的大小再把首地址给指针就可以了 不知道有没有解决贴主的疑惑
[解决办法]
那如果只是一个字符型指针char *p;是不是默认给它分配1个字节的内存空间而不用再使用new了呢?
没有这样的说法,char* p的意思是p一个4字节或8字节(32位/64位)的内存,该内存只能存放指向字符串的地址;至于字符串地址是什么,是即使一个字节,也得另外指定,或者向系统申请(new char[n])
[解决办法]
char* p; //p本身的空间已经分配,不用操心。 p所向的空间则由你指定, 可心动态分配(比较new char[10]), 也可以自动分配(比如 "hello")