免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: gaozhongshan

数组名字和数组取地址的区别 [复制链接]

论坛徽章:
0
发表于 2007-07-27 19:56 |显示全部楼层
发表于 2007-7-27 19:48
void *v;

int *ptri = v;
struct object * obj = v;

ptri 和obj是一样的东西吗




是不是一个东西 但是地址值应该一样吧

论坛徽章:
0
发表于 2007-07-27 20:17 |显示全部楼层
原帖由 gaozhongshan 于 2007-7-27 19:54 发表
struct aa
{
       char b;
       int a;
       double c;
};
int main()
{
    aa a;
    printf("%p\n",a);
    printf("%p\n",&a);
    return 0;
}
结果:
00462428
0022FF60
a和&a不相等 ...


a不是数组

论坛徽章:
0
发表于 2007-07-27 20:19 |显示全部楼层
你看看这段代码

  1. #include<stdio.h>

  2. struct aa{
  3. int a;
  4. char b;
  5. double c;
  6. };

  7. int main()
  8. {
  9.         struct aa m;
  10.         m.a = 10;
  11.         m.b = 'a';
  12.         m.c = 1.01;

  13.         printf("%d %c %f\n", m);

  14.         printf("%x\n", &m);
  15.         printf("%x      %x\n", &(m.a), &(m.b));

  16.                 return 0;
  17. }
复制代码

其结果为
10 a 1.010000
12ff70
12ff70      12ff74

而m+1编译不能通过的.

论坛徽章:
0
发表于 2007-07-27 20:20 |显示全部楼层
原帖由 flw2 于 2007-7-27 19:48 发表
void *v;

int *ptri = v;
struct object * obj = v;

ptri 和obj是一样的东西吗

不是,类型都不一样

论坛徽章:
0
发表于 2007-07-27 20:20 |显示全部楼层
我说的是结构体啊 !! 小弟很希望大家回贴 不过希望大家回帖的时候看请小弟的问题  我知道数组的问题了  现在是拓展结构体和联合体的问题  有哪位大哥给小弟解释下????

论坛徽章:
0
发表于 2007-07-27 20:25 |显示全部楼层
原帖由 flw2 于 2007-7-27 19:48 发表
void *v;

int *ptri = v;
struct object * obj = v;

ptri 和obj是一样的东西吗


这种方法好像编译都不能通过吧,
一般都是
void *p;
p = (struct aa*)malloc....
这种方式的吧.

论坛徽章:
0
发表于 2007-07-27 20:31 |显示全部楼层
原帖由 scutan 于 2007-7-27 20:25 发表


这种方法好像编译都不能通过吧,
一般都是
void *p;
p = (struct aa*)malloc....
这种方式的吧.


论坛徽章:
0
发表于 2007-07-27 20:46 |显示全部楼层
原帖由 gaozhongshan 于 2007-7-27 19:03 发表
int a[10];
其中a和&a都是指数组a[10]的首地址,但是意义完全不同谁能解释下
比如为什么*&a=a;而*a=a[0];
在线等....................................


个人觉得,可以说
typedef int A[10];
A a; /* 代替 int a[10];  */

那么 a 是 A型, &a 是A*型

论坛徽章:
0
发表于 2007-07-27 20:55 |显示全部楼层
我现在知道了 &a表示结构提的首地址,那结构体的名字表示什么呢??

论坛徽章:
0
发表于 2007-07-27 21:02 |显示全部楼层

回复 #19 gaozhongshan 的帖子

其实还是指向的那个地址, 但是结构是结构, 数组是数组, 不能够将对待数组的要求来对待结构体, 在这里结松体的名字就不能再直接进行加减了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP