C语言中*和&的区别-代码实现说明
2016-10-23 19:51
253 查看
*是指针运算符,可以表示一个变量是指针类型;也可以表示一个指针变量的所指向的存储单元,可以获取某个地址存储的值。
&是取地址符号,既取得某一个变量的地址
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("姓名:%s\n性别:%s\n年龄:%d\n电话号码:%s\n地址:%s\n",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所指的存储单元 }
相关文章推荐
- Python源代码 -- C语言实现面向对象编程(基类&派生类&多态)
- 常见图像格式类型区别及使用说明&绝对路径和相对路径的使用场景&css3实现loading效果
- 利用JScript中运算符"||"和"&&"的特殊特性实现代码精简第1/2页
- 分形介绍 && 一个简单的Kotch curve实现代码
- 通过一段代码说明C#中rel与out的使用区别
- (C语言) 怎么用代码实现一个学生成绩管理系统
- 【地图制作】详细代码说明和效果图,可实现当前各种地图
- DataStructure---LinkList 链表C语言实现代码
- C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别
- 通用C#代码:实现"控件渐变"
- C语言实现 "软中断" 程序小结
- 输出参数out和引用参数ref区别(代码解释说明)
- 市面上所有号称"虚拟机","防火墙"的实时监控杀毒软件无一不是使用的IFSHOOK技术.但是同时也有一些朋友不断写MAIL给我打听如何实现读写的监控.下面给出用VTOOLSD写的代码.也就是所有实时杀毒软件的奥秘.同时,很多拦截文件操作的软件,例如对目录加
- 用vbs实现更改计算机的说明的代码
- 利用JScript中运算符"||"和"&&"的特殊特性实现代码精简第1/2页
- 一段c语言实现的发送http消息代码
- 利用消息机制实现.NET AOP(面向方面编程) --三种实现代码下载及说明
- 分布式编程->Remoting的一个代码示例(借助Remoting实现发送信息功能)
- 用代码实现"停用/启用"网络连接
- 抛砖引玉&#8212;&#8212;实现LISTVIEW点击COLUMN排序的代码,可实现按时间,字符,数字