首页 > 其他分享 >复习结构体的创建,重定义,打印,以及对函数压栈的理解

复习结构体的创建,重定义,打印,以及对函数压栈的理解

时间:2023-07-13 23:32:56浏览次数:39  
标签:tmp ps 压栈 复习 打印 sex char tele printf

复习结构体的创建,重定义,打印,以及对函数压栈的理解_直接寻址

函数在操作,在栈上进行,形参的拷贝和函数的运行,基本上都在栈上完成,所以结构体的传参,对栈区的资源消耗较大。而传地址的操作则会节省栈区资源,不需要形参的拷贝过程,而是直接寻址。

#define _CRT_SECURE_NO_WARNINGS 1
#include "stdio.h"
struct T
{
	char t;
	char s;
};
typedef struct Stu
{
	char name[20];
	int age;
	char sex[5];
	char tele[12];
	struct T u;
}Stu;

void Print1(Stu tmp)
{
	printf("name: %s\n",tmp.name);
	printf("age: %d\n", tmp.age);
	printf("sex: %s\n", tmp.sex);
	printf("tele: %s\n", tmp.tele);
	printf("t: %c\n", tmp.u.t);
	printf("s: %c\n", tmp.u.s);
}

void Print2(Stu* ps)//此种方法打印更好,减少了数据压栈
{
	printf("name: %s\n", ps->name);
	printf("age: %d\n", ps->age);
	printf("sex: %s\n", ps->sex);
	printf("tele: %s\n", ps->tele);
	printf("t: %c\n", ps->u.t);
	printf("s: %c\n", ps->u.s);
}

int main()
{
	struct T u = { 'w','e'};
	Stu s1 = { "张三", 12, "男", "12583581451",{'w','e'}};
	Print1(s1);
	Print2(&s1);
	return 0;
}






//int main()
//{
//	char t = { 'w' };
//	printf("%c\n", t);
//	return 0;
//}

标签:tmp,ps,压栈,复习,打印,sex,char,tele,printf
From: https://blog.51cto.com/u_15906483/6717008

相关文章

  • U8凭证打印,启用新控件及强制分页处理
    1.启用新控件需要在选项中设置:2.然后在总账--凭证打印 套打设置如下:然后在打印预览设置时选择强制分面即可 ......
  • PYTHON随笔-打印错误堆栈
    PYTHON随笔-打印错误堆栈importsysimporttracebackdefprint_traceback():'打印通常的回溯信息,且附有每帧中的局部变量的列表'tb=sys.exc_info()[2]#返回当前异常的(type,value,traceback)whiletb.tb_next:tb=tb.tb_next#栈中的下一个trac......
  • 如何实现怎样实时监测Android系统打印的日志信息的具体操作步骤
    怎样实时监测Android系统打印的日志信息在开发Android应用程序的过程中,日志信息是非常重要的调试工具。通过日志信息,我们可以了解应用程序的运行状态、错误信息以及其他关键信息。为了更好地调试和分析应用程序的日志信息,我们可以实时监测Android系统打印的日志信息。本文将介绍如......
  • NOI 2023 考前知识点总复习
    NOI2023考前知识点总复习其实就是把熟悉或不熟悉的东西再过一遍,防止考场上出现会了做法却因为忘了算法而写不出来的问题。可能会一句话概括,也可能附上一点代码片段。如果不想复习知识点,只想要一点考前提示,可以直接翻到本文最底部。目录I.数据结构、树上问题II.数论III.......
  • vue和servlet 前后端分离 (复习)
    一、vue复习1.vue的使用步骤:(1)导入vue.js(2)创建除body以外最大的div标签,给定id值(3)创建vue对象newVue({el:"#app",data:{}//定义变量methods:{}//定义方法2.vue语法:v-bind:value(:value),v-model:value="",v-if,v-show,v-for的使用......
  • 数学复习 定积分的应用
    这里主要复习积分的几何应用首先按应用情况进行梳理:(1)求平面图形的面积这部分的应用分为平面直角坐标和极坐标两种情况平面直角坐标的情况:当对x积分时,其取微分的方法是取长为f(x)-g(x),宽为dx的小矩形极坐标的情况在这种方法中,取微分的方法是取角度为dθ的狭窄的小扇形,整......
  • 1-14 编写一个程序,打印输入中各个字符出现频度的直方图
    ArchlinuxGCC13.1.1 202304292023-07-1123:25:36星期二 做了调整,只输出大小写字母共计56个字符的横向直方图,如有其他需要,自行添加。点击查看代码#include<stdio.h>#defineTRUE1#defineFALSE0intmain(){intc_in;intc_num[52];intc......
  • 1-13 编写一个程序,打印输入中单词长度的直方图
    ArchlinuxGCC13.1.1 202304292023-07-1021:56:28星期一 点击查看代码#include<stdio.h>#defineMAX7#defineMIN0intmain(){intnw[10];intnum=0;intnc=0;intc=0;inti,j=0;for(i=0;i<10;i++){......
  • Django 在终端打印 ORM 对应的 SQL 语句的两种方式
    前言在使用Django框架开发项目中,如果想知道使用ORM语句操作数据库转换对应的SQL语句时,那么可以使用两种方式来实现方法一在 Django 项目的 settings.py 文件中,找到日志配置LOGGING,没有找到日志配置项的直接复制粘贴如下代码即可配置好之后,重新运行项目,再执行任何对......
  • 复习ES(6-11)语法之ES9
    目录异步迭代正则表达式扩展对象扩展Promise.prototype.finally()放松模板字符串文字限制异步迭代for-await-ofSymbol.asyncIteratorfor...of循环用于遍历同步的Iterator接口。functiongetPromise(time){returnnewPromise((resolve,reject)=>{s......