《每天一分钟学习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)

在这里插入图片描述

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

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

相关文章

Mysql索引事务(面试高频)

文章目录 目录 文章目录 前言 一 . 索引 1.1 概念 1.2 作用 1.3 使用场景 1.4 存储引擎 二 . 事务 2.1 事务的概念 2.2 事务四大特性 前言 大家好,今天给大家绍一下mysql索引和事务 一 . 索引 1.1 概念 索引是一种特殊的文件,包含着对数据表中的所有记录的引用指针…

Linux基础(第三部分)

目录 一、查看文件显示命令 1、cat&#xff1a;查看文件内容&#xff1b;上下合并文件 2、标准输入与标准输出&#xff1a; 3、例题&#xff1a;如何合并两个文件 4、tac 就是反方向查看 5、rev 把一行倒过来 6、hexdump 查看硬件设备 7、more和less 8、查看文件内容…

鸿蒙原生应用/元服务开发-Stage模型能力接口(八)

一、说明 ExtensionAbility是特定场景扩展能力的基类&#xff0c;提供系统配置更新回调和系统内存调整回调。本模块首批接口从API version 9 开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。本模块接口仅可在Stage模型下使用。 二、导入模块 .imp…

c++导入外部的依赖开源库

使用git submodule git submodule add https://github.com/username/subproject.git使用cmake导入 FetchContent 实际使用的话,有下面的三点总结 关于FetchContent,若并需要修改 配置以及编译的默认值的时候,推荐首要使用该方法。include(FetchContent)set(JSON_C_TAG jso…

JVM知识总结,一定要记住它。

1、知识点汇总 JVM是Java运行基础,面试时一定会遇到JVM的有关问题,内容相对集中,但对只是深度要求较高 其中内存模型,类加载机制,GC是重点方面.性能调优部分更偏向应用,重点突出实践能力.编译器优化 和执行模式部分偏向于理论基础,重点掌握知识点. 需了解 内存模型各部分作用…

用最通俗的语言讲解 TCP “三次握手,四次挥手”

目录 一. 前言 二. TCP 报文的头部结构 三. 三次握手 3.1. 三次握手过程 3.2. 为什么要三次握手 四. 四次挥手 4.1. 四次挥手过程 4.2. 为什么要四次挥手 五. 大白话说 5.1. 大白话说三次握手 5.2. 大白话说四次挥手 六. 总结 一. 前言 TCP 是一种面向连接的、可靠…

AI代码翻译神器,用AI翻译代码,轻松学习不同编程语言,已开源!

体验地址&#xff0c;github地址和部署地址在文章底部 AI代码翻译器的优势 近年来&#xff0c;随着技术的快速进步&#xff0c;人工智能技术展现出了在各个领域发挥作用的巨大潜力。AI代码翻译器作为一项创新技术&#xff0c;为开发者带来了全新的可能性。这项技术运用人工智…

TS 类型断言

Typescript允许你覆盖它的判断&#xff0c;并且能以任何你想要的方式分析它&#xff0c;这种机制被称为类型断言。 类型断言的两种方式&#xff1a; 1.as关键字 interface SquareConfig {color?: string;width?: number; }function createSquare(config: SquareConfig) {/…

Flink系列之:背压下的检查点

Flink系列之&#xff1a;背压下的检查点 一、Checkpointing under backpressure二、缓冲区 Debloating三、非对齐 Checkpoints四、对齐 Checkpoint 的超时五、限制六、故障排除 一、Checkpointing under backpressure 通常情况下&#xff0c;对齐 Checkpoint 的时长主要受 Che…

【MATLAB】数据拟合第13期-基于最小二乘支持向量机的拟合

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 基于最小二乘支持向量机的拟合算法是一种数学优化技术&#xff0c;它通过最小化误差的平方和寻找数据的最佳函数匹配。这种算法在曲线拟合中应用广泛&#xff0c;包括线性拟合和非线性拟合…

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

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

JavaGUI期末速成版

前言 宇宙无责声明&#xff0c;本系列记录的JavaGUI编程都是十分精简的&#xff0c;内容只取常用的、套路的、应付期末考试的。 目录大纲&#xff1a; JavaGUI&#xff08;但期末速成版&#xff09;之JFrame和JDialog-CSDN博客 JavaGUI&#xff08;但期末速成版&#xff09;之容…

智能优化算法应用:基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.饥饿游戏算法4.实验参数设定5.算法结果6.…

【重点】【贪心】55.跳跃游戏

题目 法1&#xff1a;贪心 class Solution {public boolean canJump(int[] nums) {int maxIndex nums.length - 1;int curMaxIndex 0;for (int i 0; i < nums.length; i) {if (i < curMaxIndex) {curMaxIndex Math.max(i nums[i], curMaxIndex);if (curMaxIndex &…

Ubuntu中基础命令使用

前言 以下指令测试来自于Ubuntu18.04 如果有说的不对的&#xff0c;欢迎指正与补充 以下指令为我学习嵌入式开发中使用过最多的指令 目录 前言 1 ls 首先我们进入到Linux操作系统中 2 touch创建一个文件 3 pwd查看当前路径 4 创建目录 5 删除文件 6 cd 目录跳转 0…

scrapy_redis概念作用和流程

scrapy_redis概念作用和流程 学习目标 了解 分布式的概念及特点了解 scarpy_redis的概念了解 scrapy_redis的作用了解 scrapy_redis的工作流程 在前面scrapy框架中我们已经能够使用框架实现爬虫爬取网站数据,如果当前网站的数据比较庞大, 我们就需要使用分布式来更快的爬取数…

JavaScript基础(数组+正则表达+字符串)

目录 1.数组 1.1创建数组 1.2字面量创建数组 1.3length函数 1.4遍历数组1 1.5遍历数组2语法糖 1.6增删改查 1push 2pop 3unshift("x",x) 4shift() 5数组的截取 slice() splice() 6concat 7reverse 2.内置对象 2.1data 2.2Math对象 2.3字符串 1c…

学成在线案例

1&#xff0c;CSS属性书写顺序 建议遵循以下顺序&#xff1a; 1&#xff0c;布局定位属性&#xff1a; display / position / float / clear / visbility / overflow &#xff08;建议display第一个写&#xff0c;关系到模式&#xff09; 2&#xff0c;自身属性&#xff1a…

二维相位展开问题(讨论针对不连续相位展开算法鲁棒性)

作者&#xff1a;Munther Gdeisat博士和Francis Lilley博士 先决条件&#xff1a;为了理解本教程&#xff0c;在阅读本文档之前&#xff0c;您必须已经学习并完成“一维相位展开问题”教程。 有许多应用程序可以生成包裹的相位图像。例如合成孔径雷达&#xff08;SAR&#xf…

FreeRTOS之列表及列表项实验(基于stm32f103c8t6)

B站正点原子视频链接&#xff1a; 第23讲 列表项的插入和删除实验_哔哩哔哩_bilibili #include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "FreeRTOS.h" #include "task.h" #in…