转自:https://blog.youkuaiyun.com/qq_20366761/article/details/52903953
int *p=&a;
或
int *p;
p=&a;- 1
- 2
- 3
- 4
表示将a的地址存储在p内(取a的地址赋值给p)
int *b=&a;
int c=*b;- 1
- 2
表示将指针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所指的存储单元
}
本文介绍了C语言中指针的基本使用方法,包括取地址运算符(&)和指针解引用运算符(*)的使用,并通过一个具体的结构体实例展示了如何利用指针进行数据的输入与输出操作。
3万+

被折叠的 条评论
为什么被折叠?



