C++学习笔记之结构体和指针

1、结构体指针(访问符号为->)
通过指针指向结构体变量,通过指针访问结构体变量中的数据。
首先定义结构体变量。

`//结构体指针
//通过指针访问结构体中的成员;利用操作符->可以通过结构体指针访问结构体属性
//定义学生结构体
struct student
{
	string name;
	int age;
	int score;
};
    //在main函数中
    
    //1、创建结构体变量
	struct student s = {"张三",18,100};//可以省略struct
	//2、通过指针指向结构体变量
	struct student*p = &s;
	//3、通过指针访问结构体变量中的数据
	//注意当指针指向结构体数组时,不用&和->,而是直接使用变量名
	cout << p->name << p->age << p->score << endl;

2、结构体做函数参数有两种传递方式:值传递和地址传递
还是要先定义结构体并创建结构体变量,具体代码如1中所示:

//值传递
void printStudent1(struct student s1)
{
	s1.age = 100;main函数中的值不会被改变
	cout << "姓名:" << s1.name << " 年龄:" << s1.age << " 分数:" << s1.score;
}
//地址传递
void printStudent2(struct student *p)
{
	p->age = 200;//main函数中的值会被改变
	cout << "姓名:" << p->name << " 年龄:" << p->age << " 分数:" << p->score;
}
//在main函数中调用
printStudent1(s);//值传递

//s是数据类型student的一个变量,并不是数组名,所以要加取地址符&
printStudent2(&s);//地址传递

3、指针和函数
利用指针做函数参数,可以修改实参的值。

//利用指针做函数参数,可以修改实参的值
void swap1(int*p, int*s)
{
	int temp = *p;
	*p = *s;
	*s = temp;
}

在main函数中调用,a和b的值会改变,相当于地址传递

    int a = 10;
	int b = 20;
	swap1(&a, &b);
	cout<<a;//20
	cout<<b;//10
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值