您的位置:首页 > 教育 > 锐评 > 开源多用户商城系统_免费推广链接_郑州网站建设制作公司_百度网址导航主页

开源多用户商城系统_免费推广链接_郑州网站建设制作公司_百度网址导航主页

2025/5/3 13:05:40 来源:https://blog.csdn.net/Runnymmede/article/details/143056554  浏览:    关键词:开源多用户商城系统_免费推广链接_郑州网站建设制作公司_百度网址导航主页
开源多用户商城系统_免费推广链接_郑州网站建设制作公司_百度网址导航主页

结构体指针初始化以及结构体变量作为函数实参传递时易混淆的知识点

首先要明确,结构体类型是用户自己定义的一种数据类型,其本质上与int, char等标准数据类型是一致的

**1.**因此,在进行结构体指针的初始化时,应该这样写:

# include <iostream>
using namespace std;
int main()
{typedef struct{int number;   //学号char sex;	  //性别	}stu; 
stu	x;
stu *p1=&x;   //定义结构体指针p1并初始化int a[3] = {1,2,3};int *p2=a;cout<<*p2<<endl;return 0;
}

stu *p1=&x;,而不应该写成stu *p1=x.前面已经说了,结构体类型是用户自己定义的一种数据类型,其本质上与int、char等标准数据类型是一致的,故结构体指针变量名并不代表结构体变量首地址,在对结构体指针进行初始化时要用& 结构体变量名指出地址,数组指针在初始化时这样写:int *p2=a; ,是因为数组名代表数组首地址。

2. 结构体变量作为函数实参传递时
···
void fun(stu student1)
{

}

int main()
{

stu student2; //定义结构体变量
fun(student2);
return 0;
}
···
形参是结构体变量名,故传给函数的实参是结构体变量名,它不代表结构体变量占用内存空间的首地址。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com