A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奇迹 中级黑马   /  2014-5-15 13:14  /  5487 人查看  /  52 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 奇迹 于 2014-5-17 03:34 编辑

一个函数一个栈
一个指针就是个数字而已,他指向内存地址
函数是指针
数组是指针
就是这么一回事,
不懂的请回复,我会详细的解答
#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[])
{
    int a_xx[]={1,23};
    printf("%d==%d\n",a_xx,&a_xx);
    return 0;
}
结果:
1606416624==1606416624
很多同学都说数组不是指针,以上代码已经证实。
不要怀疑数组不是指针的问题

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

52 个回复

正序浏览
多谢分享
回复 使用道具 举报
咱们在java里边不是说引用么. 您说的指针和C里指针是一回事么?
回复 使用道具 举报
a_xx,&a_xx,这都代表地址,为什么要用%d打印,不是要用%p?
回复 使用道具 举报
可以看看
回复 使用道具 举报
然而并没有什么乱用,根本就不是一样的,数据结构都不一样
回复 使用道具 举报
解释的好
回复 使用道具 举报
经典啊 学好了 看透了
回复 使用道具 举报
还好看了之后还是不太懂
回复 使用道具 举报
数组名即数组的首地址,地址才是指针吧
回复 使用道具 举报
正在学习基础中
回复 使用道具 举报
FTD 中级黑马 2015-10-8 23:16:16
42#
还是不要误导别人了把.数组是数组,指针是指针,请去看看数组和指针的定义.定义都不一样,怎么可能数组是指针,指针是数组呢?我来告诉你为什么你返回的结果是一样的把!因为你定义的这个指针指向了数组的第一元素,通俗的说也就是数组的名称,定义了数组,它本来就有内存地址的.
回复 使用道具 举报
数组的访问原理是指针。
回复 使用道具 举报
指针好难啊!!!
回复 使用道具 举报
LucienER 来自手机 中级黑马 2015-8-30 09:52:56
39#
指针是指针 数组是数组吧? 就像西瓜是西瓜 冬瓜是冬瓜 他们都可以吃 但不能说西瓜就是冬瓜吧?
回复 使用道具 举报
标题不错,不过进来以后更加不懂了
回复 使用道具 举报
指针与数组的特性总结
指针数组
保存数据的地址,任何存入指针变量p的数据都会被当做地址来处理。p本身的地址由编译器另外存储,存储在哪里,我们并不知道。保存数据,数组名a代表的是数组首元素的首地址而不是数组的首地址。&a才是整个数组的首地址。a本身的地址由编译器另外存储,存储在哪里,我们并不知道。
间接访问数据,首先取得指针变量p的内容,把它作为地址,然后从这个地址提取数据或向这个地址写入数据。指针可以以指针的形式访问*(p+i); 也可以以下标的形式访问p。但本质都是先取p的内容然后加上i*sizeof(类型)个byte作为数据的真正地址。直接访问数据,数组名a是整个数组的名字,数组内每个元素并没有名字。只能通过“具名+匿名”的方式来访问某个元素,不能把数组当一个整体来进行读写操作。数组可以以指针的形式访问*(a+i); 也可以以下标的形式访问 a。但其本质都是a所代表的数组首元素的首地址加上i*sizeof(类型)个byte作为数据的真正地址。
通常用于动态数据结构通常用于存储固定数目且数据类型相同的元素。
相关的函数为malloc和free隐式分配和删除
通常指向匿名数据(当然也可指向具名数据)自身即为数组名

评分

参与人数 1黑马币 +3 收起 理由
jeremy月 + 3 赞一个!

查看全部评分

回复 使用道具 举报
我们就业班的老师刚强调过数组不是指针,某些情况下可以通用而已.
回复 使用道具 举报
tianmoqingcheng 来自手机 中级黑马 2015-8-10 23:08:06
35#
今天刚学过,不过还是有点蒙
回复 使用道具 举报
6666666666666
回复 使用道具 举报
指针就是相当于地址
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马