当前位置: 代码迷 >> C语言 >> 指针的问题10。14
  详细解决方案

指针的问题10。14

热度:652   发布时间:2004-10-14 22:26:00.0
指针的问题10。14

static int a[2][3]={{1,2,3},{4,5,6}}; int m,*ptr; ptr=&a[0][0]; m=(*ptr)*(*(ptr+2))*(*(ptr+4)); 这道理中的(*ptr)的结果是1,(*(ptr+2))表示的是二维数组中第2和对应的一维数组的首地址,也就是4对不对?那么(*(ptr+4))的值又是什么

呢?

搜索更多相关的解决方案: 指针  

----------------解决方案--------------------------------------------------------

因为你定义了int *ptr,所以ptr的值在增加的时候是按照int的类型增加的,而内存里存放元素的顺序(地址由低到高)是1,2,3,4,5,6,所以m=(1)*(3)*(5)=15。

c是中间级语言,有低级语言的特点(和硬件联系密切),又有高级语言的优点(灵活,好用)。对类型的严格要求体现了低级语言的特点,因为类型是读取内存的依据,列出的问题是最好的例子。

这只是我自己的观点,欢迎大家讨论。


----------------解决方案--------------------------------------------------------

看优先级就行拉,()号的优先级比*的大.

ptr指首地,后面的一路推就行拉


----------------解决方案--------------------------------------------------------
明白了,谢谢大家
----------------解决方案--------------------------------------------------------
  相关解决方案