A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yushimin763 中级黑马   /  2015-9-11 09:10  /  1276 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能帮忙解释下char p[] 和 char * p区别 ?


8 个回复

倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽
回复 使用道具 举报
char p[] =
一个数组,这个数组是局部变量。

char* p =
一个指针,这个指针指向一个字符串常量

区别在于:数组的话,字符串是存在于这个数组里的,因为这个数组属于局部变量,所以你就算把数组的地址返回给主函数,主函数也没有办法再访问这个地址了。
但是如果是指向字符串常量的指针,这个字符串是放在程序的常量区而不是放在局部变量中,那么你把这个常量的地址返回给主函数,主函数也还是可以访问它的。
回复 使用道具 举报
char p[]是定义一个字符数组,定义完成系统会在内存中为其开辟一块空间,用来存放数组的元素。而char *p,是定义一个字符指针变量,系统只为指针本身开辟内存空间,并不为任何字符型值分配内存空间
回复 使用道具 举报
第一个是字符串数组,第二个是指针
回复 使用道具 举报
学习了......
回复 使用道具 举报
看过楼上的各类回答,学到了。
回复 使用道具 举报
一个数组一个指针啊
回复 使用道具 举报
本质是一样的,数组也是有由指针操作的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马