c/c++语言开发共享用代码实现来说明C语言中*和&的区别

1.*是指针运算符,可以表示一个变量是指针类型;也可以表示一个指针变量的所指向的存储单元,可以获取某个地址存储的值。 2.&是取地址符号,既取得某一个变量的地址 int *p=&

1.*是指针运算符,可以表示一个变量是指针类型;也可以表示一个指针变量的所指向的存储单元,可以获取某个地址存储的值。

2.&是取地址符号,既取得某一个变量的地址

  int *p=&a;  或   int *p;  p=&a;

表示将a的地址存储在p内(取a的地址赋值给p)

  int *b=&a;  int c=*b;

表示将指针b指向(*b)的存储单元(a)赋值给c,此时的c只是一个新的变量,不能改变原有的a的值

例题代码:

  ////////////////////////////////////////////////////  //结构体的应用                                     //  //用结构体定义基本信息                              //  //包括姓名、性别、年龄、联系电话、地址                //  //设计输入、输出函数,参数为结构体指针变量             //  ////////////////////////////////////////////////////  #include<stdio.h>  #include<stdlib.h>    //定义结构体  typedef struct  {      char name[8];      char sex[2];      int  age;      char tel[11];      char addr[20];  }person;    //输入函数  void setdata(person *p) //指针传递  {      printf("请输入姓名 性别 年龄 电话号码 地址:");      //疑问:该处char[]类型去掉&,程序正常执行???      scanf("%s %s %d %s %s",&p->name,&p->sex,&p->age,&p->tel,&p->addr);  }    //输出函数  void getdata(person p)  //参数传递  {      printf("姓名:%sn性别:%sn年龄:%dn电话号码:%sn地址:%sn",p.name,p.sex,p.age,p.tel,p.addr);  }    void main()  {      person *p;      p=(person*)malloc(sizeof(person));      setdata(p);      getdata(*p);    //*p取指针p所指的存储单元  }

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/607406.html

(0)
上一篇 2021年5月14日
下一篇 2021年5月14日

精彩推荐