- 主题:谢谢各位批评,是我混淆了指针和数组名
“p和arr所指的内存值是一样的”,这句值得推敲
对于编译器来说,指针和数组是两种不同的类型。arr是数组,它是一段地址的别称;而p是指针变量,它里面存的是一个地址,可以是一个连续空间的起始地址。对于编译器,通过指针或数组+偏移量访问内存,有些许的区别
【 在 poggy 的大作中提到: 】
:
: 主要是你没理解, C语言的指针变量。
: L=sizeof(ret)/sizeof(ret[0]);
: ...................
--
FROM 119.114.255.*
简单的说,你的arr不指向地址,编译器绝不允许你改变arr的地址,例如arr=p
【 在 poggy 的大作中提到: 】
:
: 主要是你没理解, C语言的指针变量。
: L=sizeof(ret)/sizeof(ret[0]);
: ...................
--
FROM 119.114.255.*
通过指针或者数组,访问内存,确实有一点区别
通过数组,那就数组名+偏移量去访问
通过指针,先获取指针的值,再通过值+偏移量去访问
【 在 poggy 的大作中提到: 】
:
: 嗯, 用词不准,被误解了,
: 这里指我的本意是指代的意思, 不是指向的意思。
: ...................
--
FROM 119.114.255.*
就是说,对于cpu,有区别
【 在 poggy 的大作中提到: 】
:
: 嗯, 用词不准,被误解了,
: 这里指我的本意是指代的意思, 不是指向的意思。
: ...................
--
FROM 119.114.255.*
“越界”挺吓人的
【 在 poggy 的大作中提到: 】
:
: 主要是你没理解, C语言的指针变量。
: L=sizeof(ret)/sizeof(ret[0]);
: ...................
--
FROM 119.114.255.*
对于新手,指针和数组有着太多的相似点,不容易分清,c老手不应该依此奚落新手。编个程而已嘛。
【 在 redfoxzheng 的大作中提到: 】
: 你把基础学扎实了再来问吧。你连指针,数组都分不清呢
--
FROM 119.114.255.*
我们可以说,对于代码的书写,p[i]和arr[i]没有区别,但是对于处理器,就是有区别。多了就不展开了
【 在 poggy 的大作中提到: 】
:
: 嗯, 用词不准,被误解了,
: 这里指我的本意是指代的意思, 不是指向的意思。
: ...................
--
FROM 119.114.255.*