C语言补习课

news2024/11/14 1:46:47

来源:黑马程序员

C语言常用占位符

1.%d 或 %i:用于输出有符号整数(int)。

2.%u:用于输出无符号整数(unsigned int)。

3.%f:用于输出浮点数(floatdouble)。默认情况下,输出六位小数。

4.%lf:专门用于输出double类型的浮点数(尽管%f也可以,但%lf更明确)。

5.%c:用于输出单个字符(char)。

6.%s:用于输出字符串(char数组)。

7.%x 或 %X:用于输出无符号整数(unsigned int)的十六进制形式,%x使用小写字母,%X使用大写字母。

8.%o:用于输出无符号整数(unsigned int)的八进制形式。

9.%%:输出一个%字符。

10.%p:用于输出指针的值,以十六进制形式表示。

11.%zu:专门用于输出size_t类型的无符号整数值。

第146讲 共同体

引入共同体的原因是一种数据可能有多种类型。

语法:

union [共同体名称]{

};

示例:

union MoneyType {
	int moneyi;
	double moneyd;
	char  moneystr[100];
};

注意每个类型的共同体成员不能重名,并且每次只能赋一个值!

C语言给字符串型变量进行赋值建议用strcpy函数,函数原型如下:

char *strcpy(char *dest, const char *src);

变量介绍:

dest 是指向用于存储复制内容的目标数组(字符串)的指针。

src 是指向要复制的源字符串的指针。

函数返回目标字符串的指针。

我这里用的visual studio推荐用strcpy_s,中间需要加一个参数代表原字符串型变量的大小。

参考代码:

#include <stdio.h>
#include <string.h>

typedef union{
	int moneyi;
	double moneyd;
	char  moneystr[100];
} MoneyType;
	


int main()
{
	MoneyType money;
	//money.moneyi = 100;
	//money.moneyd = 99.5;
	strcpy_s(money.moneystr,sizeof(money.moneystr),"100万");

	//printf("%d\n",money.moneyi);
	//printf("%lf\n", money.moneyd);
	printf("%s\n", money.moneystr);


	return 0;
}

第147讲 共用体的特点

共用体的特点:

● 共用体,也叫联合体,共同体

● 所有的变量都使用同一个内存空间

● 所占的内存大小=最大成员的长度(也受内存对齐影响,总大小也一定是最大成员的整数倍)

● 每次只能给一个变量进行赋值,因为第二次赋值时会覆盖原有的数据

在上一讲的基础上运行下面的代码

	printf("%p\n",&(money.moneyi));
	printf("%p\n",&(money.moneyd));
	printf("%p\n",&(money.moneystr));

运行结果:

得证所有的变量都使用同一个内存空间。

那么上一讲的money到底占用多少内存呢?

	printf("%zu",sizeof(money));

输出结果:

原因是char  moneystr[100]并不能视为最大长度的成员,它是100个char类型的变量组成的数组。最大长度成员是double,也就是说这个联合体的大小不仅得大于100,而且得是8的倍数。100不起字节,加4刚好是8的倍数。

第148讲 结构体和共同体的区别

使用场景:

              结构体:一个事物包含多种属性

               联合体:一个属性有多种类型

存储方式:

                结构体:各存各的

                共用体:存一起,多次存会覆盖

内存占用:

               结构体:各个变量的总和(受内存对齐影响)

              共用体:最大类型(受内存对齐影响)

第149讲 动态内存分配常用函数

注意:这四个函数需要#include <stdlib.h>才能使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2081562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美学设计:重塑中国商业竞争力的关键驱动力,美学革命:中国商业竞争的新战场

​在中国经济发展的滚滚洪流中,一场悄无声息却又波澜壮阔的革命正在上演。这不是技术的革新,不是商业模式的颠覆,而是一场关乎感官、情感与价值观的美学革命。 长久以来,中国企业在全球市场竞争中扮演着"世界工厂"的角色,以价格优势和规模效应称雄。然而,随着国内市…

element el-popover组件 查看示例图片功能实现

el-popover查看示例图片 官网文档:element ui 用于vue2 和element plus 用于vue3 https://element.eleme.cn/#/zh-CN/component/popover http://element-plus.org/zh-CN/component/popover.html 常见属性 <el-popover :width"400" trigger"hover" pl…

大数据技术之Flume 企业开发案例——自定义 Source(9)

目录 自定义 Source 1&#xff09;介绍 2&#xff09;需求 3&#xff09;分析 4&#xff09;编码 5&#xff09;测试 自定义 Source 1&#xff09;介绍 Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型和格式的日志数据&#xff0c;包括 avr…

【Spring】Spring循环依赖的解决方案

【Spring】Spring循环依赖的解决方案 开篇词&#xff1a;干货篇&#xff1a;1.PostConstruct方法&#xff1a;2.构造函数注入和Setter方法注入&#xff1a;3.配置文件注明【允许存在循环引用】4.Lazy5.SpringUtil的getBean 我是杰叔叔&#xff0c;一名沪漂的码农&#xff0c;下…

Swift concurrency 3 — 三种异步方式(@escaping closure, Combine, async/await)

直到现在为止&#xff0c;如果我们想要异步请求数据&#xff0c;应该说至少有三种方式&#xff1a; 传统的通过闭包&#xff08;escaping closure&#xff09;方式回调处理。通过Combine的发布者订阅者机制。通过async/await组合的方式。 采用哪种方式&#xff0c;还得因项目…

基于微信小程序音乐分享与交流平台---附源码95587

摘 要 随着移动互联网的普及&#xff0c;微信小程序作为一种轻量级的应用程序&#xff0c;正逐渐成为人们获取信息和服务的便捷渠道。为了给用户提供便捷、多样化的音乐分享和交流渠道&#xff0c;本文提出了—种基于微信小程序的音乐分享与交流平台的设计与实现方案。通过该平…

SqlServer还原数据库后,数据库显示受限制用户解决方法

SqlServer还原数据库后&#xff0c;数据库显示受限制用户解决方法: 1.打开SSMS。 2.选中连接的数据库&#xff0c;右击鼠标右键&#xff0c;点击属性 3.在属性对话框中选择选项 4.在该对话框的右边&#xff0c;找到【限制访问】,并且将其改为&#xff1a;【MULTI_USER】 5.点击…

1个月2万粉的AI职业头像号,1分钟速成超详细教程

大家好 今天要拆解的是一个**小红书的AI职业头像号博主&#xff0c;**博主使用了手绘的二次元风格头像&#xff0c;不到1个月&#xff0c;现在的粉丝数已经1.9万了&#xff0c;收藏点赞9万。 有图有真相&#xff1a; 一、账号作品分析 这个博主的账号都是图文笔记。使用AI制…

【Google Maps JavaScript API】Simple Click Events 详解

文章目录 一、Simple Click Events 简介1. 什么是 Simple Click Events&#xff1f;2. 为什么使用 Simple Click Events&#xff1f; 二、Simple Click Events 的实现1. 基本代码结构2. 设置地图样式3. 初始化地图 三、处理点击事件1. 为标记添加点击事件2. 中心改变事件 四、完…

【JAVA基础】抽象类

抽象类 引言抽象类 抽象方法 引言 ​ 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 …

【Google Maps JavaScript API】Geolocation功能实现用户位置定位

文章目录 一、什么是Geolocation&#xff1f;二、Geolocation的应用场景三、如何使用Geolocation功能1. 初始化地图2. 编写初始化地图的JavaScript代码3. 代码解析初始化地图创建定位按钮获取用户位置处理定位错误 4. 样式设置5. 运行示例 四、注意事项五、总结 Google Maps Ja…

【GIT】Idea中的git命令使用-全网最新详细(包括现象含义)

原文网址&#xff1a;【GIT】Idea中的git命令使用-全网最新详细&#xff08;包括现象含义&#xff09; 文章目录 **命令1&#xff1a;查看当前所处分支&#xff1a;****命令2&#xff1a;拉取最新代码&#xff1a;****命令3&#xff1a;切换分支&#xff1a;****命令4&#xff…

AIOps探索 | 运维应急的六个阶段

当下&#xff0c;金融科技快速发展的时代&#xff0c;银行和金融机构的IT系统日益复杂&#xff0c;业务量呈指数式增长。面对这一挑战&#xff0c;运维应急已成为确保金融服务稳定性和可靠性的关键因素。 智能运维应急即在IT系统出现异常或故障时&#xff0c;快速发现问题、准…

【达梦数据库】数据库频繁崩溃记录-非dump分析

这里写目录标题 背景查找原因问题解决补充 背景 用户反映系统CentOS上的数据库频繁崩溃&#xff0c;系统没有崩溃过&#xff0c;希望帮忙分析下 查找原因 查看数据库运行日志&#xff1a;无任何报错 查看数据库错误日志&#xff1a;无报错 查看OS运行日志&#xff0c;/var…

EPLAN中如何制作标题页和封页?

EPLAN中如何制作标题页和封页? 如下图所示,我们打开EPLAN,新建一个项目,

开学季有什么必买的好物?提升学习效率的好物来啦!学生党必看!

对于即将开学的学生们来说&#xff0c;选择一款性价比高的电容笔是非常重要的。它不仅能够提升学习效率&#xff0c;还能带来更加流畅舒适的书写与绘画体验。接下来&#xff0c;我将推荐一款非常适合学生使用的电容笔&#xff0c;它不仅性能可靠&#xff0c;而且价格亲民&#…

大语言模型向量检索技术综述:背景知识、数据效率、泛化能力、多任务学习、未来趋势

预训练语言模型如BERT和T5&#xff0c;是向量检索(后续文中使用密集检索)的关键后端编码器。然而&#xff0c;这些模型通常表现出有限的泛化能力&#xff0c;并在提高领域内准确性方面面临挑战。最近的研究探索了使用大型语言模型&#xff08;LLMs&#xff09;作为检索器&#…

苹果机器人计划:能否成为智能家居的破局者?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

ADB 获取屏幕坐标,并模拟滑动和点击屏幕

本文声明:本文是参考https://blog.csdn.net/beyond702/article/details/69258932编制。同时,补充了在windows系统模式下,详细的获取屏幕坐标的步骤。 1.判断设备与windows电脑USB连接是否正常 在CMD窗口输入命令:ADB devices,按ENTER键,输出如下结果,则表示连接正常。 …

LLM大模型微调心得:全面经验总结与技巧分享

导读 模型越大对显卡的要求越高&#xff0c;目前主流对大模型进行微调方法有三种&#xff1a;Freeze方法、P-Tuning方法和Lora方法。本文总结了作者在ChatGLM-6B模型微调的经验&#xff0c;并汇总了目前各类开源项目&数据。 写在前面 大型语言模型横行&#xff0c;之前非…