读书人

c++中字符型指针跟字符型数组指针

发布时间: 2013-11-01 14:43:02 作者: rapoo

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])
[解决办法]

引用:
Quote: 引用:

char* p; 只说明p是个可以保存char地址的变量, 你让它指那里,它就指哪里


char* p = NULL;
p = (char*)"hello";
char c = 'x';
p = &c;
char buf[40];
p = buf;
....


上面的程序中,p=(char*)"hello"的意思是把hello的地址给了p吗?还有p=buf执行之前不需要使用p=new char【100】给它分配动态空间吗 还是说char *p=NULL已经说明分配过空间了啊




char* p; //p本身的空间已经分配,不用操心。 p所向的空间则由你指定, 可心动态分配(比较new char[10]), 也可以自动分配(比如 "hello")

读书人网 >C++

热点推荐