请问char*ch ;和char(*ch);有什么区别?

YWG_713 2007-07-05 05:35:20
请问char*ch ;和char(*ch);有什么区别?
...全文
1613 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
homewin 2007-07-09
  • 打赏
  • 举报
回复
恩,又学了一点哦。
西安风影 2007-07-09
  • 打赏
  • 举报
回复
第一个是指针数组:每一个数组元素就是一个指针变量
第二个才是数组的指针:指向数组的指针
lwalwg 2007-07-08
  • 打赏
  • 举报
回复
恩我学习中
lcyuan01 2007-07-07
  • 打赏
  • 举报
回复
一个是指针数组,一个是数组的指针
mars_snailbaby 2007-07-06
  • 打赏
  • 举报
回复
对了 ,楼主那样写确实是一样的,
char * p[2];
char ( * q )[2];
如此写法区别就如上面我说的 了,1,数组指针 2,指针数组


楼上的正好写反了吧~
第一个是指针数组
第二个才是数组的指针
tonpangel 2007-07-06
  • 打赏
  • 举报
回复
我们都是新学的!!!大家一起努力1```
zhangyanli 2007-07-06
  • 打赏
  • 举报
回复
对了 ,楼主那样写确实是一样的,
char * p[2];
char ( * q )[2];
如此写法区别就如上面我说的 了,1,数组指针 2,指针数组
mymtom 2007-07-06
  • 打赏
  • 举报
回复
一样!
楼主是不是想问:
char * p[2];
char ( * q )[2];
的区别?
zenny_chen 2007-07-05
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5527/5527100.xml?temp=.9649927
tangshuiling 2007-07-05
  • 打赏
  • 举报
回复
除了优先级以外没有区别,char *ch改成cha (*ch)后指向的空间地址不会发生任何变化,并且分配的堆内存的大小也没有变化,实质是一样的,不同的叫法而已。
allenlinhao 2007-07-05
  • 打赏
  • 举报
回复
一个字符型指针,一个字符型指针数组
juicee 2007-07-05
  • 打赏
  • 举报
回复
lz这样写没区别- -又没有[]操作符,何来指针数组?数组指针?
yc_8301 2007-07-05
  • 打赏
  • 举报
回复
c[3] 定义在栈里了,是不能被delete的。
delete和new是配对出现的。
malloc和free同样也是。
lmlmlmnew 2007-07-05
  • 打赏
  • 举报
回复
。。。。
如果按你的写法 char*ch ;和char(*ch);
没区别。。。。
如果你是想问 那些什么数组指针,指针数组,函数指针之类的 请去搜索
深入理解C语言指针的奥秘
jinwei1984 2007-07-05
  • 打赏
  • 举报
回复
mark
dabang_007 2007-07-05
  • 打赏
  • 举报
回复
lz的问题好像应该是一样的吧?
我的验证方法如下:
void k(int);
char * a ;
char (*b) ;
f(a);-------------------(1)
f(b);-------------------(2)
(1)(2)处的错误均为:
E:\code\ticket\ticket.cpp(66) : error C2664: 'k' : cannot convert parameter 1 from 'char *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
E:\code\ticket\ticket.cpp(67) : error C2664: 'k' : cannot convert parameter 1 from 'char *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast


再有,根据定义也应该是一样的啊。
不知道楼上的怎么得出不一样来的?
KenYuan2016 2007-07-05
  • 打赏
  • 举报
回复
没有区别
zhangyanli 2007-07-05
  • 打赏
  • 举报
回复
原因很简单啊,你的c数组不是动态的啊,释放栈上的空间是不允许的
char(*b)用于指针数组
YWG_713 2007-07-05
  • 打赏
  • 举报
回复
这三种写法不一样吗,为什么delete []c ;会出错。
char * a = new char[3] ;
char (*b) = new char[3] ;
char c[3] ;

a[0] = 'a',a[1] = 'b',a[2] = '\0' ;
b[0] = 'a',b[1] = 'b',b[2] = '\0' ;
c[0] = 'a',c[1] = 'b',c[2] = '\0' ;

AfxMessageBox( CString(a) ) ;
AfxMessageBox( CString(b) ) ;
AfxMessageBox( CString(c) ) ;

delete []a ;
delete []b ;
delete []c ;
YWG_713 2007-07-05
  • 打赏
  • 举报
回复
好像对于char数组这样写没有什么区别呀
加载更多回复(7)

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧