char *p="123" 和
char p[]="123"有区别妈??
char p[]="123"有区别妈??
解决方案 »
- Debug Assertion Failed!怎么解决!!!
- 大陆网络游戏玩家想进韩国服务器,谁能给个好的韩国SOCK5代理服务器地址?
- 高分求助关于重复编译的问题!
- 关于界面可重用的问题!
- 请问怎么把静太文本里的文字变大改变字体和背影。?送分小弟想了几星期都没有搞出来一定送分要详细代码
- 简单的DCOM实例(公司预研文档)
- 急急急!!!谁有《MFC Windows 程序设计》电子版?
- 欢迎大家探讨MFC编程和WIN32编程各有什么利弊,学习哪种编程方法比较实用,哪种学习周期短!
- ## 只要帮我解决问题,我给1000分 ##
- 我的VC++编译器怎么了?
- 请教在vc中用post方式连接一个网站页面的源代码(我会加分的)
- 哪里能装到中文版的MSDN?英文版的看起来太费劲?不知道MSDN如何用。
p[]在概念上是一个字符数组,如果你要使用*p也是可以的,这时的p就和上面的一样了。从本质上来看两者是没有差别的。
1.如果上面的定义是在函数中,在Dos中,char* p=“123”中p为2个字节,在堆栈中分配,“123”在数据段分配(编译时在程序中), p指向"123"的起始地址字符串”123“占个4字节,其后不能扩展;而char p[]="123"中p为4个字节,在堆栈中分配,内容为“123”,p为的起始地址,其后也不能扩展。
2.如果在Win32中,char* p=“123”中p为4个字节,在堆栈中分配,“123”在数据段分配(编译时在程序中), p指向"123"的起始地址字符串”123“占个4字节,其后不能扩展;而char p[]="123"中p为4个字节,在堆栈中分配,内容为“123”,p为的起始地址,其后也不能扩展。
3.char* p="123"中的p可以用new 或malloc等再分配空间,而char p[]="123"中的p不能再次分配空间,其空间大小只能为4。
如还有问题,请来信:[email protected]