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

news2024/12/23 0:36:11

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)

在这里插入图片描述

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

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

相关文章

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Button按钮组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Button按钮组件 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、Button按钮组件 Button 组件也是基础组件之一&#xff0c;和其它基础组件不…

QT打包exe文件,在其它电脑里双击exe就可以直接运行

想要不依赖QT环境&#xff0c;在其它电脑里直接双击exe文件就可以运行当前程序。具体打包过程如下&#xff1a; 使用QT编译出release版本的exe release版本运行无误后&#xff0c;需要找到当前构建生成的exe所在文件夹 可以看到具体目录在这里 我在该目录下的bin文件夹里找到…

ICC2:Less than minimum edge length和Concave convex edge enclosure

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 首先,要介绍一下这两种drc Less than minimum edge length对应的tf rule如下: 而Concave convex edge enclosure对应图示和tf 规则如下,可

linux中vim命令修改jar包中的文件内容

文章目录 概述vim命令修改配置文件 概述 首先问问为什么要直接修改jar包中的文件&#xff0c;而不是重新打包&#xff0c;在非必要的情况下&#xff0c;不要直接修改jar包&#xff0c;这样容易出事故&#xff1b; 当然也有一些场景不得不修改jar包&#xff0c;比如&#xff1a…

TrustZone之示例用例——空中固件更新

这第二个示例涉及更新引导固件。我们系统的要求如下&#xff1a; • 新的固件镜像通过网络提供。 • 只能安装经过身份验证的镜像。 • 固件版本不能回滚。 为了实现这些目标&#xff0c;OEM 使用其私钥对图像进行签名。下载设备配备了公钥&#xff0c;它可以用来验证签名。…

3D模型人物换装系统(三 优化合批处理,提取合批配置可,封装)

3D模型人物换装系统三&#xff08;优化合批处理&#xff0c;提取合批配置可&#xff0c;封装&#xff09; 介绍法线贴图问题规划以及封装缺陷修改整理 整合总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 这里先说一下我上一篇没有解决的问题&#xff0c;法线贴图不正确&am…

24岁,拿到18K,我真的很卷?

前言 前段时间去面试了一个公司&#xff0c;成功拿到了offer&#xff0c;薪资也从12k涨到了18k&#xff0c;对于工作还没两年的我来说&#xff0c;还是比较满意的&#xff0c;毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王&#xff0c;感觉自己年轻&#xff0c…

MySQL,使用Union组合查询

1、基本使用 Union可将多条select语句组合成一个结果集&#xff0c;常见的使用场景有2种&#xff1a; 在单个查询中&#xff0c;从不同的表返回类似结构的数据&#xff1b;对单个表执行多个查询&#xff0c;按单个查询返回数据。 例&#xff1a;检索出所有价格<50的产品&…

java多线程创建的三种方式

第一种 第二种 第三种&#xff08;想获得线程的执行结果&#xff0c;建议使用这种&#xff09;

2023 英特尔On技术创新大会直播 |探索视觉AI的无限可能

2023 英特尔On技术创新大会直播 | 探索视觉AI的无限可能 前言一未来的 AI&#xff1a;释放视觉 AI 真正潜力二AI技术突破、视觉Al挑战及前沿研究创新三全尺度视觉学习全尺度视觉学习示例1.GridConv 实现三维人体姿态估计更高准确率2.KW 预训练及迁移模型性能3.无数据增强稠密对…

8.基于Cortex-M4内核的STM32F40x中断分析

通用中断知识铺垫1&#xff1a; 完整的CM4有256个可编程中断&#xff08;16个内核中断和240个外部中断&#xff09;&#xff0c;而stm32f40x共有92个中断&#xff08;10内82可编程&#xff09;&#xff0c;意思是说STM32F40X这个单片机没有完全释放CM4内核的资源。 CM4内核的中…

赴日IT培训课程 程序员新思路!

先说好&#xff0c;跟国内相比&#xff0c;日本IT并不发达。日本IT是依托着日本传统强势的制造业和政府机关发展的&#xff0c;所以开发的大多数软件也是面向这些的&#xff0c;由于日本人的严谨态度&#xff0c;各种文档的编写层出不穷&#xff0c;不像国内程序员每天没日没夜…

全方位的账号安全管理

如今&#xff0c;特权账户范围广、数量大且极不稳定是当前各行业面临黑客等攻击行为的最大安全隐患。而且&#xff0c;由于特权账户的权限极大&#xff0c;一旦其被攻击者破解&#xff0c;就能完全掌控组织的IT基础设施&#xff0c;从而引发防护控制失效、机密数据泄露、商业诈…

[网络安全]密码字典快速生成——在线网站

目录 1.密码字典在线生成器one点击链接 ​编辑2.密码字典在线生成器two点击链接 3.密码字典在线生成器three点击链接 个人推荐生成器1&#xff0c;因为复制黏贴好用。 1.密码字典在线生成器one点击链接 2.密码字典在线生成器two点击链接 3.密码字典在线生成器three点击链接 看…

Spring Boot学习随笔- 文件上传和下载(在线打开、附件下载、MultipartFile)

学习视频&#xff1a;【编程不良人】2021年SpringBoot最新最全教程 第十二章、文件上传、下载 文件上传 文件上传是指将文件从客户端计算机传输到服务器的过程。 上传思路 前端的上传页面&#xff1a;提交方式必须为post&#xff0c;enctype属性必须为multipart/form-data开发…

Java:获取线程的名字

代码示例&#xff1a; package com.thb;public class Test6 {public static void main(String[] args) {System.out.println(Thread.currentThread().getName());}}运行输出&#xff1a;

【单调栈】LeetCode2030:含特定字母的最小子序列

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 题目 给你一个字符串 s &#xff0c;一个整数 k &#xff0c;一个字母 letter 以及另一个整数 repetition 。 返回 s 中长度为 k 且 字典序最小 的子序列&#xff0c;该子序列同时应满足字母 letter 出…

常见分布的分布列/概率密度、分布函数、期望、方差、特征函数

0-1分布 二项分布 泊松分布 几何分布 均匀分布 正态分布 指数分布 伽马分布 卡方分布

【C语言】自定义类型之联合和枚举

目录 1. 前言2. 联合体2.1 联合体类型的声明2.2 联合体的特点2.3 相同成员的结构体和联合体对比2.4 联合体大小的计算2.4 判断当前机器的大小端 3. 枚举3.1 枚举类型的声明3.2 枚举类型的优点3.3 枚举类型的使用 1. 前言 在之前的博客中介绍了自定义类型中的结构体&#xff0c;…

【SQLite】SQLite数据库简单使用与Navicat安装-加密

Sqlite为免安装数据库&#xff0c;安装步骤总结&#xff1a; 官网下载Sqlit数据库&#xff0c;官网下载地址:https://www.sqlite.org/download.html 下载: sqlite-dll-win64-x64-3390400.zip或者32位sqlite-dll-win32 sqlite-tools-win-x64-3440200.zip或者32位sqlite-tools-wi…