《每天一分钟学习C语言·五》

1、
给一个字符数组输入字符串

char arr[10];
gets[arr]; //gets函数接收回车符,如果直接按回车,gets函数会把回车符转变成空字符作为结束,即arr[0]==’\0’;

2、
文件结尾标志ctrl+z表示返回NULL
自己定义的头文件里面一般有宏定义和声明(函数声明,结构声明)。这些都不是可执行代码,而是编译器用于产生可执行代码的信息,可执行代码通常在源代码中,而不再头文件,比如定义了一个book.h头文件,里面放声明,可执行代码的定义放在book.c源文件中,在book.c写定义的时候也要加上头文件book.h
注:头文件只能有宏定义,函数声明,结构声明(结构体联合体)和内联函数,如果定义变量如int i;会报错,结构体声明后还定义变量的也会报错,如
Struct student {…}s; 头文件中就不能定义变量。

3、
不允许定义结构体指针变量后用指针直接给成员变量赋值,要赋给指针地址才能赋值。一个指针定义了后没有初始化或者赋地址值,就不知道这个指针指向内存中的哪个地方,容易引起程序崩溃,如

struct name
{
	char names[20];
}
void main()
{
	struct name *pt; //指针没赋地址值,内存中不知道指向哪里
	gets(pt->names); //error,引起程序崩溃

	struct name name1; //定义一个结构体变量,没有初始化,但有明确的地址值
	struct name *pt1 = &name1; //给指针赋地址值让指针有明确指向
	gets(pt1->names); //正确
}

4、

#ifdef MAVIS
#include <stdio.h>
#define STABLES 5
#else
#include “cow.h”
#define STABLES 15
#endif
#ifdef  //说明如果预处理器已经定义了一个标识符MAVIS则执行#ifdef里面的语句,否则执行#else语句

#ifndef SIZE
#define SIZE 100
#endif

如果预处理器没有定义标识符SIZE则执行#ifndef语句

一般在头文件中需要加入ifndef处理,这样在源代码中不小心引入多个相同的头文件也不会报错,第一次调头文件如果SIZE没有定义,进入#ifndef内部执行相关头文件代码,第二次在调用相同头文件就不会进入#ifndef内部执行相同的头文件代码,如果没有#ifndef就会执行两遍头文件代码会报错,例子

#ifndef SIZE
//明示常量
#define SIZE 10
//函数声明
void max(int, int);
//内联定义
inline static eat()
{
	printf(“haha”);
}
//结构声明
struct name {
	char arr[10];
};
//类型定义
typedef struct name names;
#endif

常见的预处理宏
__DATE__日期(字符串形式)
__FILE__当前源代码文件名(字符串形式)
__LINE__当前源代码文件中行号整数常量(整型)
__TIME__源文件编译时间,不是当前系统时间(字符串形式)

5、
记住常用数学库,头文件math.h

6、
string.h
memcpy(void *rec,void *dest,n)
把dest中前n个字节拷贝到rec指向的字符串中
在这里插入图片描述
对比strncpy(char形指针地址,char形指针地址,字节数)

7、

//匿名结构体
typedef struct
{
	int i;
}arr;
arr arr1;
struct
{
	int i;
}arr;
arr.i=10; //arr为结构体变量名

8、
结构体问题

88、结构体问题
struct person
{
   int age;
}p;
//p是一个已经创建好的对象,相当于struct person p; 如果放在头文件中容易被多个文件包含报重定义错误

typedef struct person
{
   int age;
}person;
//person就是struct person,这时候并没有创建对象,放在头文件被多个文件包含不会报错,创建对象为person p;

9、
进制转换
(1)十进制(14)–>二进制
14/2=7…0
7/2=3…1
3/2=1…1
1/2=0…1
二进制为1110
(2)八进制(17)–>十进制
7x8零次方+1x8一次方=15
(3)十进制(88)–>八进制
88/8=11…0
11/8=1…3
1/8=0…1
八进制为130
(4)十进制(88)–>十六进制
88/16=5…8
5/16=0…5
十六进制是58
(5)十六进制(0X32C)–>十进制
Cx16零次方+2x16一次方+3x16二次方=812

10、
float i = 3.2e3f; (i是3.2x10三次方=3200)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux目录和文件管理

一.Linux目录结构 Linux操作系统在定位文件或目录位置时&#xff0c;使用斜杠“ / ”进行分割&#xff08;区别于Windows操作系统中的反斜杠“ \ ”&#xff09;。整个树形目录结构中&#xff0c;使用独立的一个" / "表示根目录&#xff0c;根目录是Linux操作系统文…

MySQL:通过官方mysql server,搭建绿色版mysql服务器(Windows)

1. 官网下载mysql server 下载mysql server的zip文件&#xff0c;地址&#xff1a; https://downloads.mysql.com/archives/community/ 解压后 2. 初始化数据库 运行cmd&#xff0c; 进入bin目录&#xff0c;运行 mysqld --initialize-insecureinitialize-insecure说明如…

【Qt之Quick模块】3. QML类型

概述 Qt QML模块为使用QML语言开发应用程序和库提供了一个框架。它定义并实现了语言和引擎基础结构&#xff0c;并提供了一个API&#xff0c;使应用程序开发人员能够使用自定义类型扩展QML语言&#xff0c;并将QML代码与JavaScript和c集成在一起。Qt QML模块提供了QML API和c …

python用什么软件编写程序,python编写的软件有哪些

大家好&#xff0c;本文将围绕python用什么软件编写程序展开说明&#xff0c;python编写的软件有哪些是一个很多人都想弄明白的事情&#xff0c;想搞清楚用什么软件编写python需要先了解以下几个事情。 大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python可以用什么…

一文3000字从0到1使用JMeter进行压力测试!

一、压力测试 压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内&#xff0c;做到心中有数。 使用压力测试&#xff0c;我们有希望找到很多种用其他测试方法更难发现的错误。有两种错…

【MATLAB】史上最全的25种信号分解算法全家桶

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 【MATLAB】EMD 信号分解算法 EMD 是一种信号分解方法&#xff0c;它将一个信号分解成有限个本质模态函数 (EMD) 的和&#xff0c;每个 EMD 都是具有局部特征的振动模式。EMD 分解的主要步骤如下&#xff1a; 将信号的…

软件分享--图片置顶工具

一个好的程序应该只做一件事情&#xff0c;并且将这件事情做好。 使用许多小工具的集合要比使用一个什么都做但什么都做不好的工具要好。 linux系统强大&#xff0c;组成它的是dd、sed、grep、awk、tar等各种命令工具的集合。 如果你能够合理使用各种小工具。效率会比使用任何…

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型 报错: Unable to get value BigNumber(16) from database resultset显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber)&#xff0c;但实际hive数据库中是big类型。 修改kettle源码解决&#xff1a; kettle中java.sql.Types到kettle…

12.21

一、注意事项 1.CtrlShiftT用于从jar中查找类&#xff0c;这个eclipse键盘快捷键可以帮助快速找到类 2.更新upm和rest遇到重复解决方法 把upm文件里面多出来的三行代码删掉&#xff0c;右击upm文件&#xff0c;点击小组&#xff0c;点击标记为已解决&#xff0c;点击OK&#x…

springboot使用Validated实现参数校验

做为后端开发人员&#xff0c;一定有前端传的数据是可能会出错的警惕性&#xff0c;否则程序就可能会出错&#xff0c;比如常遇到的空指针异常&#xff0c;所以为了程序运行的健壮性&#xff0c;我们必须对每一个参数进行合法校验&#xff0c;就能避免很多不必要的错误&#xf…

MyBatis Plus使用遇到的问题

如果想使用Mapper的xxxById()方法&#xff0c;实体类的主键上面必须加上TableId注解&#xff0c;如果不加&#xff0c;会报错 2023-12-21 22:48:33.526 WARN 11212 --- [ main] c.b.m.core.injector.DefaultSqlInjector : class com.example.mybatisplusdemo.dom…

Java最全面试题专题---5、Spring MVC

概述 什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f; Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;通过把模型-视图-控制器分离&#xff0c;将web层进行职责解耦&#xff0c;把复杂的web应用分成逻辑清…

牛客小白月赛78(C: 第K小表示数)

C-第K小表示数_牛客小白月赛78 (nowcoder.com) 问题&#xff1a; 分析: k的极限是1e6,因此要几乎O(n)的时间复杂度给求出来&#xff0c;还需要每插入一个元素我都要去排序&#xff0c;这个时候set就派上用场了&#xff0c;自带排序和去重,集合里面最小和第二小的一定是min(a…

新闻软文怎么写?才能让用户看得下去

在企业软文推广的过程中&#xff0c;除了常规的行业型软文与用户型软文外&#xff0c;新闻式软文也是企业宣传的常用方式。然而新闻稿虽然可信度强&#xff0c;但是故事性弱用户不一定看得下去&#xff0c;如果无法吸引用户阅读的话&#xff0c;那这篇新闻稿就起不到宣传作用&a…

pip 离线安装:利用pypi网站进行模块 库的离线安装

离线安装是一种很好的方法&#xff0c;在网络不佳、库版本不明确、复杂库本地编译安装报错时&#xff0c;通过whl文件的下载安装&#xff0c;可以很高效的解决问题。 pypi的网站&#xff1a;https://pypi.org/ 这个网站包含各种你 pip install xxx 的库&#xff0c;离线安装可…

【Week-P2】CNN彩色图片分类-CIFAR10数据集

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结3.1 ⭐ torch.nn.Conv2d()详解3.2 ⭐ torch.nn.Linear()详解3.3 ⭐torch.nn.MaxPool2d()详解3.4 ⭐ 关于卷积层、池化层的计算4.2.1 optimizer.zero_grad()说明4.2.2 loss.backward()说…

【git学习笔记 01】打标签

文章目录 一、声明二、对标签的基本认知什么是标签&#xff1f;为什么要打标签&#xff1f;如何生成类似github中readme的图标 三、标签相关命令四、示例操作 一、声明 本帖持续更新中如有纰漏&#xff0c;望批评指正&#xff01;参考视频链接&#xff0c;非常感谢原作者&…

法线贴图实现衣服上皱褶特效

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 法线贴图在3D建模中扮演着重要的角色&#xff0c;它通过模拟表面的微…

Vue3视图渲染技术(2)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

vue中的侦听器和组件之间的通信

目录 一、侦听器 监听基本数据类型&#xff1a; 监听引用数据类型&#xff1a; 计算属性和watch区别&#xff1f; 二、组件通信/传值方式 1.父子组件传值 父组件给子组件传值&#xff1a; &#xff08;1&#xff09;props &#xff08;2&#xff09;provide inject &…