关于《c和指针》的一些课后习题1.关于地址是什么ints,该怎么解决
关于《c和指针》的一些课后习题1.关于地址是什么ints
根据下面给出的声明和数据,对每个表达式进行求值并写出他的值。某个表达式的结果不影响后面表达式。假定ints数组在内存中的起始位置是100,整形和指针的长度都是4个字符。求:
1.ints 100 ;ip 112
2.ints[4] 50 ;ip[4] 80
3.ints+4 116 ;ip+4 128
4.*ints+4 14 ;*ip+4 44
5.*(ints+4) 50 ;*(ip+4) 80
6.ints[-2] 非法 ;ip[-2] 20
7.&ints 100 ; &ip 未知
8.&ints[4] 116 ;&ip[4] 128
9.&ints+4 116 ;&ip+4 未知
10.&ints[-2] 非法 ;&ip[-2] 104
问题和结果我都抄出来了。
我的问题是:1.ip[4] 8。这个可以这样写的吗,ip[4]不是表示数组的意思的吗,我以为都没有ip[4]这个数组。
2.&ip[4] 128 这个怎么理解,
3.&ints+4 不是应该是100+4吗?
还有,这些是不是背背就可以了,没什么好解释的??
------解决方案--------------------
“还有,这些是不是背背就可以了,没什么好解释的??”
我的天,LZ以为软件研发是背英语单词,真是让人无语啦
********************************************************************************
* C++经典之作下载链接:http://blog.****.net/jerryjbiao/article/details/7358796 *
********************************************************************************
------解决方案--------------------
初级程序员不就是那样的嘛,时间长了也就理解了,呵呵
------解决方案--------------------
看你的结贴率真心懒得答
不过看你看书看的真么累,刚好我以前也看过这本书给你说说
数组是可以用指针的形式访问的,这个这本书讲的很细;
当然指针也可以用数组的形式访问,本质是相同的,这个这本书也讲到了;
你也许会说,我要是看明白的还来这问。。。。
ip[4] 同 ip+4 同 ints + 3 + 4 同 ints[7] 也就是80
&ip[4],这个是问的地址值,就是ints[]的开始地址100 + 7 * sizeof(int) = 128
&ints + 4,ints指整个ints数组(有点绕。。。),而ints数组占空间20*sizeof(int) = 80,还有就是指针 运算(我记得非常清楚,这本书专门讲了),&ints + 4 同 100 + 4 * sizeof(ints) = 420
根据下面给出的声明和数据,对每个表达式进行求值并写出他的值。某个表达式的结果不影响后面表达式。假定ints数组在内存中的起始位置是100,整形和指针的长度都是4个字符。求:
1.ints 100 ;ip 112
2.ints[4] 50 ;ip[4] 80
3.ints+4 116 ;ip+4 128
4.*ints+4 14 ;*ip+4 44
5.*(ints+4) 50 ;*(ip+4) 80
6.ints[-2] 非法 ;ip[-2] 20
7.&ints 100 ; &ip 未知
8.&ints[4] 116 ;&ip[4] 128
9.&ints+4 116 ;&ip+4 未知
10.&ints[-2] 非法 ;&ip[-2] 104
问题和结果我都抄出来了。
我的问题是:1.ip[4] 8。这个可以这样写的吗,ip[4]不是表示数组的意思的吗,我以为都没有ip[4]这个数组。
2.&ip[4] 128 这个怎么理解,
3.&ints+4 不是应该是100+4吗?
还有,这些是不是背背就可以了,没什么好解释的??
------解决方案--------------------
“还有,这些是不是背背就可以了,没什么好解释的??”
我的天,LZ以为软件研发是背英语单词,真是让人无语啦
********************************************************************************
* C++经典之作下载链接:http://blog.****.net/jerryjbiao/article/details/7358796 *
********************************************************************************
------解决方案--------------------
初级程序员不就是那样的嘛,时间长了也就理解了,呵呵
------解决方案--------------------
看你的结贴率真心懒得答
不过看你看书看的真么累,刚好我以前也看过这本书给你说说
数组是可以用指针的形式访问的,这个这本书讲的很细;
当然指针也可以用数组的形式访问,本质是相同的,这个这本书也讲到了;
你也许会说,我要是看明白的还来这问。。。。
ip[4] 同 ip+4 同 ints + 3 + 4 同 ints[7] 也就是80
&ip[4],这个是问的地址值,就是ints[]的开始地址100 + 7 * sizeof(int) = 128
&ints + 4,ints指整个ints数组(有点绕。。。),而ints数组占空间20*sizeof(int) = 80,还有就是指针 运算(我记得非常清楚,这本书专门讲了),&ints + 4 同 100 + 4 * sizeof(ints) = 420