欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

《初学C语言第15天》

最编程 2024-08-13 08:13:24
...

////结构体成员的访问

//#include<stdio.h>

//typedef struct stu

//{

// //成员变量

// char name[20];

// short age;

// char tele[12];

// char sex[7];

//}Stu;

//void Print1(Stu tmp)//形参tmp//形参是实参的一份临时拷贝,且此块空间放到其他的位置上即tmp位置上(存在空间浪费)

//{

// printf("name:%s\n",tmp.name);

// printf("age:%d\n", tmp.age);

// printf("tele:%s\n", tmp.tele);

// printf("sex:%s\n", tmp.sex);

//}

//void Print2(Stu* ps)//指针ps//此处只需创建一个4字节(32位)或8字节(64位)的指针变量ps

//{

// printf("name:%s\n", ps->name);

// printf("age:%d\n", ps->age);

// printf("tele:%s\n", ps->tele);

// printf("sex:%s\n", ps->sex);

//}

//int main()

//{

// Stu s = { "李四",22,"15312312655","男" };

// //打印结构体数据

// //Print1和Print2哪个更好?

// // 答:Print2更好

// //理由:Print2的系统开销(地址占用)更小函数传参的时候,参数是需要压栈的。

// //如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。

// //压栈:向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素

// Print1(s);//实参s

// Print2(&s);//地址&s传参(传地址{无论结构体多大,我们只传4字节(32位)或8字节(64位)})到指针ps  

// //Print1(s)和Print2(&s)为封装函数

// //封装函数:基础函数的封装就是将代码中需要的代码打包,并将这个包裹命名。

// // 在后续程序中,我们直接使用这个包裹,而不需要重新编写一段代码

// //这是一个简单的不传参数的函数。通过函数名加括号我们可以调用对应的函数。

// return 0;

//}

////结论:结构体传参的时候,需要传结构体的地址

//压栈