当前位置: 首页 > news >正文

10.15学习

1.程序开发的步骤

定义程序的目标→设计程序→编写代码(需要选择语言,一种语言对应一种编译器)→编译→运行程序→测试和调试程序→维护和修改程序

 

2.ANSI/ISO C标准

1989年ANSI批准通过,1990年ISO批准通过,因此被称为C89或C90。

1994年,C9X委员会发布C99标准,新增以下目标

①支持国际化编程②调整现有实践致力于解决明显的缺陷③为适应科学和工程项目中的关键数值计算,提高C的适应性,让C比FORTRAN更有竞争力

 

3.用二进制存储的原因

①二进制在电气元件中容易实现,双稳态元件很多

②二进制运算比十进制运算简单的多

③二进制易于实现物理上对数据的存储(eg:光盘)

 

4.负数存储

以二进制补码形式存储

取反:原码中的符号位不变,之后的数全部取反(1改成0,0改成1)

加一:反码加一(eg:最后一位是0,直接加1变成1)

取反再加一后得到的就是补码

在存储中,减法是加上补码

 

5.内存的特点:速度快,可随机访问,但掉电即失

6.计算机的内存地址按字节(Byte)编址

7.可寻址的最小单元--字节

衡量内存容量的最小单位--位

8.C语言中的数据类型

①基本数据类型:

 int :整型,用于存储整数。

 float :浮点型,用于存储小数。

 double :双精度浮点型,比 float 有更高的精度。

 char :字符型,用于存储单个字符。

 void :无类型,用于函数声明中表示函数不返回任何值。

②枚举类型( enum ):

用户自定义的类型,用于定义一组命名的整型常量。

③结构体类型( struct ):

用户自定义的复合数据类型,可以包含不同类型的数据项。

④联合体类型( union ):

与结构体类似,但联合体中所有成员共享同一块内存空间。

⑤数组类型:

可以存储多个相同类型的数据项。

⑥ 指针类型:

用于存储变量的内存地址。

⑦函数类型:

可以定义函数指针,指向函数的指针。

⑧类型定义( typedef ):

允许用户为现有的数据类型定义一个新的类型名。

⑨布尔类型( _Bool ):

在C99标准中引入,用于逻辑值的存储。

这些是C语言中的主要数据类型,它们可以组合使用,以满足不同的编程需求。

9.字符在计算机中用ASCII码进行存储

a→97

A→65

ASCII取值只能在0-127

10.标识符命名规则

在C语言中,标识符(包括变量名、函数名、数组名、结构体名等)的命名遵循以下规则:

①首字符:

标识符的第一个字符必须是字母(大写或小写)或下划线(_)。

②后续字符:

标识符的后续字符可以是字母、数字(0-9)或下划线。

③大小写敏感:

C语言是大小写敏感的,这意味着 Variable 和 variable 被视为两个不同的标识符。

④关键字和保留字:

不能使用C语言的关键字和保留字作为标识符。例如,不能使用 int 、 float 、 if 、 while 等作为标识符。

⑤数字开头:

标识符不能以数字开头,否则会导致编译错误。

⑥长度限制:

标识符的长度通常有限制,虽然不同编译器可能有不同的最大长度限制,但建议不要超过31个字符。

⑦ 可读性:

尽管标识符的命名规则允许使用各种字符组合,但为了代码的可读性和维护性,建议使用有意义的、描述性的名称。

⑧命名约定:

通常有几种常见的命名约定,例如:

✮驼峰命名法(camelCase):首单词字母小写,后续单词首字母大写,如 myVariableName 。

✮帕斯卡命名法(PascalCase):每个单词的首字母都大写,如 MyVariableName 。

✮下划线命名法(snake_case):所有单词以小写字母书写,单词之间用下划线分隔,如 my_variable_name 。

✮匈牙利命名法:在变量名前加上表示类型的前缀,如 iCount 表示整型变量。

 

11.

★变量必须先声明后使用

★一条声明语句可声明若干个同类型变量(eg:int a,b,c;)

★声明顺序无关紧要

12.赋值①变量的初始化:在定义变量时为变量赋值②赋值表达式:定义完变量后再为变量赋值

Q:未被初始化的变量的值是什么?

A:随机数(乱码)

 

13.如何变量赋值

变量=表达式

变量1=变量2=变量3

变量1=(变量2=表达式)

 

14.变量的类型决定了什么

①内存分配:

变量的类型决定了为该变量分配的内存大小。例如, int  类型通常占用4个字节的内存空间,而  char  类型通常占用1个字节。

②存储值的范围:

变量的类型定义了它可以存储的值的范围。例如, int  类型可以存储的整数范围通常在 -2,147,483,648 到 2,147,483,647 之间(具体范围取决于系统的位数),而  float  类型可以存储大约6到7位有效数字的浮点数。

③数据表示:

变量的类型决定了数据在内存中的表示方式。例如,整数类型通常以二进制形式存储,而浮点数则遵循IEEE 754标准。

④运算符的适用性:

变量的类型决定了哪些运算符可以应用于该变量。例如,加法运算符  +  可以用于整数和浮点数,但不能用于字符串。

⑤类型转换:

在表达式中混合使用不同类型的变量时,会发生隐式类型转换,这可能会影响计算结果的精度和范围。

⑥函数参数和返回值:

函数参数和返回值的类型决定了函数可以接收和返回的数据类型。

⑦内存对齐:

某些类型的变量(如结构体中的成员)可能需要按照特定的边界对齐,以提高访问效率。

⑧指针操作:

指针变量的类型决定了它指向的内存块的大小,以及通过指针可以访问的数据类型。

⑨数组和循环:

数组的类型决定了数组中每个元素的类型,循环变量的类型决定了循环计数的上限。

⑩可移植性:

不同的编译器和平台可能对同一类型的变量有不同的实现,但变量的类型确保了程序的可移植性。

 

相关文章:

10.15学习

1.程序开发的步骤 定义程序的目标→设计程序→编写代码(需要选择语言,一种语言对应一种编译器)→编译→运行程序→测试和调试程序→维护和修改程序 2.ANSI/ISO C标准 1989年ANSI批准通过,1990年ISO批准通过,因此被称…...

mongodb-7.0.14分片副本集超详细部署

mongodb介绍: 是最常用的nosql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片副本)集群。 环境准备 系统系统 BC 21.10 三台服务器:192.168.123.247/248/249 安装包&#xff1a…...

C++运算出现整型溢出

考虑如下代码: int aINT_MAX; int b 1; long c ab; 这段代码没有编过! 原因是a和b都是int型,相加之后会溢出。 请记住,c语言没有赋值,只有表达式,右侧会存在一个暂存的int保存ab的值,而明…...

LeetCode岛屿数量

题目描述 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网…...

Karmada核心概念

以下内容为翻译,原文地址 Karmada 是什么? | karmada 一、Karmada核心概念 一)什么是Karmada 1、Karmada:开放,多云,多集群Kubernetes业务流程 Karmada (Kubernetes Armada)是一个Kubernetes管理系统&…...

Rust 与生成式 AI:从语言选择到开发工具的演进

在现代软件开发领域,Rust 语言正在逐步崭露头角,尤其是在高性能和可靠性要求较高的应用场景。与此同时,生成式 AI 的崛起正在重新塑造开发者的工作方式,从代码生成到智能调试,生成式 AI 的应用正成为提升开发效率和质量…...

Python爬虫高效数据爬取方法

大家好!今天我们来聊聊Python爬虫中那些既简洁又高效的数据爬取方法。作为一名爬虫工程师,我们总是希望用最少的代码完成最多的工作。下面我ll分享一些在使用requests库进行网络爬虫时常用且高效的函数和方法。 1. requests.get() - 简单而强大 requests.get()是我们最常用的…...

C语言之扫雷小游戏(完整代码版)

说起扫雷游戏,这应该是很多人童年的回忆吧,中小学电脑课最常玩的必有扫雷游戏,那么大家知道它是如何开发出来的吗,扫雷游戏背后的原理是什么呢?今天就让我们一探究竟! 扫雷游戏介绍 如下图,简…...

Spring WebFlux 响应式概述(1)

1、响应式编程概述 1.1、响应式编程介绍 1.1.1、为什么需要响应式 传统的命令式编程在面对当前的需求时的一些限制。在应用负载较高时,要求应用需要有更高的可用性,并提供低的延迟时间。 1、Thread per Request 模型 比如使用Servlet开发的单体应用&a…...

Unity游戏通用框架——事件的订阅和发布(观察者模式)

在游戏开发的基本思想中,逻辑与表现的分离极为重要,相互之间并不关心具体实现,只注册对应的事件,有事件发生时才调用相应的函数 事件管理器 using System.Collections; using System.Collections.Generic;public class event_ma…...

将 Ubuntu 系统中的 **swap** 空间从 2GB 扩展到 16GB

要将 Ubuntu 系统中的 swap 空间从 2GB 扩展到 16GB,可以按照以下步骤操作: 1. 关闭现有 Swap 文件 首先需要禁用当前的 swap 文件,以便重新调整其大小。 sudo swapoff -a2. 删除旧的 Swap 文件 假设当前的 swap 文件位于 /swapfile&…...

流程图 LogicFlow

流程图 LogicFlow 官方文档&#xff1a;https://site.logic-flow.cn/tutorial/get-started <script setup> import { onMounted, ref } from vue import { forEach, map, has } from lodash-es import LogicFlow, { ElementState, LogicFlowUtil } from logicflow/core …...

Mac通过键盘选取内容

问题&#xff1a; 我们在使用键盘的时候经常懒得动手去拿鼠标了&#xff0c;并且熟练使用键盘可以提高我们的工作效率&#xff0c;比如在我们需要复制内容的时候&#xff0c;可以仅仅通过键盘来选取想要的内容&#xff1b; 解决&#xff1a; 将鼠标光标移动到想要选取的内容…...

如何通过OpenCV实现图像融合拼接?

图像拼接的意义 2024年了&#xff0c;谈论图像拼接&#xff0c;不算新事物&#xff0c;我们这里探讨图像拼接&#xff0c;主要探讨图像拼接的意义、难点和大概的实现思路。图像拼接可以突破设备视野限制&#xff0c;通过拼接低分辨率图像获得高分辨率图像。 扩展视野&#xff…...

Qt5.14.2 安装详细教程(图文版)

Qt 是一个跨平台的 C 应用程序开发框架&#xff0c;主要用于开发图形用户界面&#xff08;GUI&#xff09;程序&#xff0c;但也支持非 GUI 程序的开发。Qt 提供了丰富的功能库和工具&#xff0c;使开发者能够在不同平台上编写、编译和运行应用程序&#xff0c;而无需修改代码。…...

深圳市步步精科技有限公司荣获发明专利,彰显技术研发实力

2024年8月13日&#xff0c;深圳市步步精科技有限公司&#xff08;BBJconn&#xff09;正式获得了其新开发的防水连接器专利&#xff0c;授权公告号为CN 118352837 B。这项技术的突破标志着公司在连接器领域的持续创新&#xff0c;进一步巩固了其行业领先地位。 专利技术概述 此…...

std::function的概念和使用方法

一、概念 std::function是 C 标准库中的一个模板类&#xff0c;定义在<functional>头文件中。它是一种通用的多态函数包装器&#xff0c;其实例能够对任何可调用对象进行存储、复制和调用操作&#xff0c;这些可调用对象包括普通函数、函数指针、成员函数指针、函数对象…...

OpenAI的Swarm是一个实验性质的多智能体编排框架

先上文档&#xff0c;然后解释&#xff0c;然后是代码 OpenAI的Swarm是一个实验性质的多智能体编排框架&#xff0c;旨在简化多智能体系统的构建、编排和部署。以下是对Swarm的详细介绍&#xff1a; 一、核心概念和特点 智能体&#xff08;Agent&#xff09;&#xff1a; Swar…...

简易STL实现 | Map 的实现

提供了键值对的存储机制&#xff0c;处理 具有唯一键的关联数据 1、特性 键值对存储&#xff1a;std::map 通过键值对的形式 存储数据&#xff0c;其中每个键 都是唯一的&#xff0c;并且 与一个值相关联 自动排序&#xff1a;std::map 内部 使用一种平衡二叉搜索树&#xf…...

`concurrent.futures` 是 Python 标准库中的一个模块

先来看文档 concurrent.futures 是 Python 标准库中的一个模块&#xff0c;它提供了一个高级接口来异步执行代码&#xff0c;使用线程或进程池来并行运行任务。这个模块提供了两种主要的池类型&#xff1a;ThreadPoolExecutor 和 ProcessPoolExecutor&#xff0c;以及一个通用的…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...