当前在线人数16332
首页 - 分类讨论区 - 电脑网络 - 葵花宝典版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
C++指针问题 int (*) [10]
[版面:葵花宝典][首篇作者:zaoxie] , 2010年02月21日17:58:49 ,378次阅读,12次回复
来APP回复,赚取更多伪币 关注本站公众号:
[分页:1 ]
zaoxie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: zaoxie (gg), 信区: Programming
标  题: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 17:58:49 2010, 美东)

int (*m)[10]:
m是一个指针,指向一个 array of 10 ints. m的类型是:int (*) [10]?

int m[10]:
m是一个指针,指向一个 array of 10 ints. m的类型是:int* ?(函数传递时候)

但是我知道,int (*) [10] 和 int* 是不一样的类型对吧?那怎么不一样的类型,却
表示一样的东西:m是一个指针,指向一个 array of 10 ints.?

请大侠指教。


还有:
int*
int [ ]
两者的区别。

int (*) [ ] 是不是一个类型(没有size)?int (*) [5]和 int (*) [10]是不是一样的类型?

--

※ 修改:·zaoxie 於 Feb 21 18:01:31 2010 修改本文·[FROM: 152.3.]
※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 152.3.]

 
zaoxie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: zaoxie (gg), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 18:17:55 2010, 美东)

刚才试了试,发现int (*) [5]和 int (*) [10]是不一样的。
--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 152.3.]

 
MarkJoshi
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 3 ]

发信人: MarkJoshi (MJ), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 18:48:01 2010, 美东)

int m[10]:
the type of m is int[10] not int*. It can be converted to int* automatically
under certain situations.

int(*f)[10]:
f can hold the position of m.
f = &m is correct.
f = m is wrong.


【 在 zaoxie (gg) 的大作中提到: 】
: int (*m)[10]:
: m是一个指针,指向一个 array of 10 ints. m的类型是:int (*) [10]?
: int m[10]:
: m是一个指针,指向一个 array of 10 ints. m的类型是:int* ?(函数传递时候)
: 但是我知道,int (*) [10] 和 int* 是不一样的类型对吧?那怎么不一样的类型,却
: 表示一样的东西:m是一个指针,指向一个 array of 10 ints.?
: 请大侠指教。
: 还有:
: int*
: int [ ]
: ...................



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 18.111.]

 
zaoxie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 4 ]

发信人: zaoxie (gg), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 19:00:24 2010, 美东)

no.

【 在 MarkJoshi (MJ) 的大作中提到: 】
: int m[10]:
: the type of m is int[10] not int*. It can be converted to int*
automatically
:  under certain situations.
: int(*f)[10]:
: f can hold the position of m.
: f = &m is correct.
: f = m is wrong.



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 152.3.]

 
easyroad
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 5 ]

发信人: easyroad (pine), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 22:36:19 2010, 美东)


int (*) [ ] 是不是一个类型(没有size)?int (*) [5]和 int (*) [10]是不是一样
的类型?


no,

give you an example,

int a[][5] ={{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}};
int b[][10] ={{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
               {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}};

int (*c)[5] = a[0];
int (*d)[10] = b[0];

//note (c+1) - c is different from (d+1) - d
// (c+1) - c should be sizeof(int)*5
//(d+1) - d should be sizeof(int)*10



--

※ 修改:·easyroad 於 Feb 21 23:00:34 2010 修改本文·[FROM: 128.253.]
※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 128.253.]

 
DamonA
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 6 ]

发信人: DamonA (寡宿), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 22:46:17 2010, 美东)

1. yes
2. no

【 在 easyroad (pine) 的大作中提到: 】
: int (*) [ ] 是不是一个类型(没有size)?int (*) [5]和 int (*) [10]是不是一样
: 的类型?



--

※ 来源:·BBS 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 67.247.]

 
MarkJoshi
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 7 ]

发信人: MarkJoshi (MJ), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 22:57:39 2010, 美东)

I think I clearly explained your misunderstanding


【 在 zaoxie (gg) 的大作中提到: 】
: no.
: automatically



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 18.115.]

 
zaoxie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 8 ]

发信人: zaoxie (gg), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 23:11:09 2010, 美东)

good examples.

【 在 easyroad (pine) 的大作中提到: 】
: int (*) [ ] 是不是一个类型(没有size)?int (*) [5]和 int (*) [10]是不是一样
: 的类型?
: no,
: give you an example,
: int a[][5] ={{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}};
: int b[][10] ={{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
:                {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}};
: int (*c)[5] = a[0];
: int (*d)[10] = b[0];
: //note (c+1) - c is different from (d+1) - d
: ...................



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 152.3.]

 
MarkJoshi
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 9 ]

发信人: MarkJoshi (MJ), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 23:23:39 2010, 美东)

this does not compile.
the write way is:

int (*c)[5] = &a[0];

【 在 easyroad (pine) 的大作中提到: 】
: int (*) [ ] 是不是一个类型(没有size)?int (*) [5]和 int (*) [10]是不是一样
: 的类型?
: no,
: give you an example,
: int a[][5] ={{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}};
: int b[][10] ={{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
:                {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}};
: int (*c)[5] = a[0];
: int (*d)[10] = b[0];
: //note (c+1) - c is different from (d+1) - d
: ...................



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 18.115.]

 
zaoxie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 10 ]

发信人: zaoxie (gg), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 23:30:52 2010, 美东)

Thanks.
but i think easyroad means int (*c)[5]=a;

【 在 MarkJoshi (MJ) 的大作中提到: 】
: this does not compile.
: the write way is:
: int (*c)[5] = &a[0];



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 152.3.]

 
zaoxie
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 11 ]

发信人: zaoxie (gg), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Sun Feb 21 23:32:16 2010, 美东)

what you said was right. but just not quite on the points.
Thank you anyway.

【 在 MarkJoshi (MJ) 的大作中提到: 】
: I think I clearly explained your misunderstanding



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 152.3.]

 
MarkJoshi
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 12 ]

发信人: MarkJoshi (MJ), 信区: Programming
标  题: Re: C++指针问题 int (*) [10]
发信站: BBS 未名空间站 (Mon Feb 22 00:14:50 2010, 美东)

I guess it still involves an implicit conversion.
In some implementations, the value of the pointer is shifted by an offset.

【 在 zaoxie (gg) 的大作中提到: 】
: Thanks.
: but i think easyroad means int (*c)[5]=a;



--

※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 18.115.]

[分页:1 ]
[快速返回] [ 进入葵花宝典讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996