Chinaunix首页 | 论坛 | 博客
  • 博客访问: 121454
  • 博文数量: 41
  • 博客积分: 2564
  • 博客等级: 少校
  • 技术积分: 455
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-20 19:17
文章分类

全部博文(41)

文章存档

2009年(41)

我的朋友

分类: C/C++

2009-04-08 20:41:35

直接上代码:

#include <stdio.h>

typedef    struct s{
    int a;
    int *p;
}S;

struct ss{
    int a;
    int arr[2];
};

int main()
{
    struct s a;
    S b;
    int c = 2;
    struct ss x, y;
    x.a = 2;
    x.arr[0] = 1;
    x.arr[1] = 2;
    a.a = 33;
    a.p = &c;
    b = a;
    (*b.p) ++;
    b.a ++;
    printf("a:\t%-2d %-2d\n", a.a, b.a);
    printf("*p:\t%-2d %-2d\n", *a.p, *b.p);
    
    y = x;
    y.arr[0] ++;
    printf("arr[0]: %d %d\n", x.arr[0], y.arr[0]);
}


输出:

a: 33 34
*p: 3 3
arr[0]: 1 2


由输出可知,对于指针成员,结构体赋值拷贝指针的值,而对于数组成员,则拷贝数组的所有元素,而非拷贝数组首地址。
阅读(685) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-08-06 08:58:28

有点乱

chinaunix网友2009-08-06 08:56:50

有点乱