黑马程序员技术交流社区

标题: char p[] 和 char * p区别 [打印本页]

作者: yushimin763    时间: 2015-9-11 09:10
标题: char p[] 和 char * p区别
谁能帮忙解释下char p[] 和 char * p区别 ?



作者: 123wwlwwl    时间: 2015-9-11 10:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 安若曦    时间: 2015-9-11 11:24
char p[] =
一个数组,这个数组是局部变量。

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

区别在于:数组的话,字符串是存在于这个数组里的,因为这个数组属于局部变量,所以你就算把数组的地址返回给主函数,主函数也没有办法再访问这个地址了。
但是如果是指向字符串常量的指针,这个字符串是放在程序的常量区而不是放在局部变量中,那么你把这个常量的地址返回给主函数,主函数也还是可以访问它的。
作者: lumangmang    时间: 2015-9-11 11:39
char p[]是定义一个字符数组,定义完成系统会在内存中为其开辟一块空间,用来存放数组的元素。而char *p,是定义一个字符指针变量,系统只为指针本身开辟内存空间,并不为任何字符型值分配内存空间
作者: 张健康ios0826    时间: 2015-9-11 23:43
第一个是字符串数组,第二个是指针
作者: 克莱斯勒    时间: 2015-9-12 00:02
学习了......
作者: 羊口羊口羊    时间: 2015-9-12 00:18
看过楼上的各类回答,学到了。
作者: 大宝820    时间: 2015-9-13 23:34
一个数组一个指针啊
作者: qingqibing    时间: 2015-9-14 22:01
本质是一样的,数组也是有由指针操作的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2