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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奇迹 中级黑马   /  2014-5-15 13:14  /  5484 人查看  /  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 个回复

倒序浏览
;P呵呵 数组不是指针吧
回复 使用道具 举报
251638256 发表于 2014-5-16 22:32
呵呵 数组不是指针吧

你可以温习下基础
回复 使用道具 举报
数组不是指针
回复 使用道具 举报

你可以温习下基础
回复 使用道具 举报
奇迹 发表于 2014-5-17 03:25
你可以温习下基础

#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


不懂的可以继续回复提问,我会详细解答
回复 使用道具 举报
我人为通常情况下a_xx跟&a_xx是一样的 都代表1606416624这个内存地址
但是你对a_xx+1操作  和&a_xx+1操作的结果是不一样的
换句话说指向a_xx的指针类型跟指向&a_xx的类型是不一样的
前者应该是int形 而后者应该是整个数组类型  
回复 使用道具 举报
char  *a = "gg";
char b[] = "gg";
一个可变,一个不可变,你确定指针 就是数组?
回复 使用道具 举报
ding yi ding
回复 使用道具 举报
huangqiwa 发表于 2014-5-17 17:47
我人为通常情况下a_xx跟&a_xx是一样的 都代表1606416624这个内存地址
但是你对a_xx+1操作  和&a_xx+1操作的 ...

对的,!!!
回复 使用道具 举报
一只小菜鸟 发表于 2014-5-17 22:04
char  *a = "gg";
char b[] = "gg";
一个可变,一个不可变,你确定指针 就是数组?

你可以自己试试看,。看看地址是不是一样的
回复 使用道具 举报
本帖最后由 一只小菜鸟 于 2014-5-19 23:07 编辑
奇迹 发表于 2014-5-19 22:27
你可以自己试试看,。看看地址是不是一样的

呵呵  地址一样,就是相同的东西了?  
printf("%d==%d\n",a_xx+1,&a_xx+1);  那你告诉我这两个相不相同,
一个指向int*,一个指向 int(*)[],既然一样 何来区分char  *a = "gg";
char b[] = "gg";  你让我试什么?
还有面试有一题问你的就是指针和数组的区别,你能告诉我怎么回答么。


回复 使用道具 举报
一只小菜鸟 发表于 2014-5-19 23:05
呵呵  地址一样,就是相同的东西了?  
printf("%d==%d\n",a_xx+1,&a_xx+1);  那你告诉我这两个相不相同 ...

你硬要钻牛角尖我也没法
回复 使用道具 举报
奇迹 发表于 2014-5-20 01:38
你硬要钻牛角尖我也没法

我只是不希望你误导别人罢了
回复 使用道具 举报
一只小菜鸟 发表于 2014-5-20 12:32
我只是不希望你误导别人罢了

我没有误导,只是看你怎么理解而已
回复 使用道具 举报
奇迹 发表于 2014-5-19 22:27
你可以自己试试看,。看看地址是不是一样的

这2个的地址应该不是一样的额,  一个是常量空间里面的地址,一个是栈里面的地址。
回复 使用道具 举报
徐开伟 发表于 2014-6-6 13:01
这2个的地址应该不是一样的额,  一个是常量空间里面的地址,一个是栈里面的地址。 ...

你是在挖坟呢
回复 使用道具 举报
{:3_59:}还真挖出僵尸了 哈哈。。
回复 使用道具 举报
我记得数组名是数组第一个指针,并且是最外级指针(还有多维数组的时候)。楼主的表达应该详细点嘛,容易误解。
回复 使用道具 举报
这个问题,我感觉这个例子有点牵强,数组不能说是指针,只是数组名存储的是数组的地址而已,而且&是引用,为什么这两个相等,说明数组是指针嗯
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马