加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

结构体指针和结构体变量的区别

(2013-05-21 22:51:17)
分类: 软件开发基础
   结构体指针和结构体变量的区别实质上和指针变量和变量的区别是一样的。例如:
   int a;
   int *ptr;
   只是结构体做为一种新的变量,它的形式更加复杂,当定义了结构体指针后,对结构体中元素的访问需要用“->”访问,而结构体变量用“.”访问相应的结构体元素。作为函数的形参时,结构体变量和结构体指针的区别其实跟一般变量也是一样,结构体指针作为形参时,函数体内对结构体内容的改变将返回,而变量作为参数时则不能传递返回:以下面的代码为例:
  #include<stdio.h>

 typedef struct {
int a;
int b;
} classA;
void main()
{

    void pass1(classA var);
void pass2(classA *ptr);

classA var={1,2};
classA ptr1,*ptr2;

ptr1 = var;
ptr2 = &var;
 
pass1(var);
printf("*****var.a is %d\n",var.a);
printf("var.b is %d\n",var.b);
pass2(&var);
printf("#######var.a is %d\n",var.a);
printf("var.b is %d\n",var.b);
return 0;

}

void pass1(classA var)
{
printf("var.a is %d\n",var.a);
printf("var.b is %d\n",var.b);
var.a = 100;
var.b = 200;
}

void pass2(classA *ptr)
{
printf("ptr->a is %d\n",ptr->a);
printf("ptr->b is %d\n",ptr->b);
ptr->a = 300;
ptr->b = 400;
}
代码运行结果为:

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有