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标准。

④运算符的适用性:

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

⑤类型转换:

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

⑥函数参数和返回值:

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

⑦内存对齐:

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

⑧指针操作:

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

⑨数组和循环:

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

⑩可移植性:

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

 

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

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

相关文章

构建流媒体管道:利用 Docker 部署 Nginx-RTMP 从 FFmpeg RTMP 推流到 HLS 播放的完整流程

最近要实现一个类似导播台的功能,于是我先用 FFmpeg 实现一个参考对照的 Demo,我将其整理为一篇文章,方便后续大家或者和自己参考! 1、软件工具介绍 本次部署相关软件 / 工具如下: FFmpeg:全称是 Fast Fo…

软件确认测试内容和方法分享,CMA、CNAS第三方软件检测机构推荐

在现代软件开发中,软件确认测试扮演着至关重要的角色。它不仅帮助开发团队识别系统中的缺陷,还确保软件产品符合用户需求和期望。 软件确认测试旨在验证软件系统的性能和功能是否符合设计规格和用户需求。它通常在软件开发的后期进行,以确保…

火语言RPA流程组件介绍--浏览器上传文件

🚩【组件功能】:在浏览器内自动点击上传功能按钮,选择本地文件完成文件网页上传 配置预览 配置说明 目标元素 支持T或# 通过捕获网页元素或填写css,xpath获取网页元素作为操作目标 上传文件路径 支持T或# 默认FLOW输入项 需要上传的文件…

从零开始构建:Python自定义脚本自动化你的日常任务

从零开始构建:Python自定义脚本自动化你的日常任务 Python 作为一种简洁且功能强大的编程语言,被广泛应用于各种自动化任务中。通过编写 Python 脚本,你可以轻松地将日常重复性工作自动化,例如文件操作、数据处理、网络爬虫、系统…

vue3--通用 button 组件实现

背景 在日常开发中,我们一般都是利用一些诸如:element-ui、element-plus、ant-design等组件库去做我们的页面或者系统 这些对于一些后台管理系统来说是最好的选择,因为后台管理系统其实都是大同小异的,包括功能、布局结构等 但是对于前台项目,比如官网、门户网站这些 …

【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符驱动和新字符驱动开发入门,点亮LED

【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符驱动和新字符驱动开发入门,点亮LED 文章目录 开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动开发驱动设备号地址映射,虚拟内存和硬件内存地址字符驱动旧字符驱动新字符驱动 …

live2d 实时虚拟数字人形象页面显示,对接大模型

live2dSpeek 测试不用gpu可以正常运行 https://github.com/lyz1810/live2dSpeek 运行的话还需要额外下载https://github.com/lyz1810/edge-tts支持语音 ## 运行live2dSpeek >npm install -g http-server >http-server . ## 运行edge-tts python edge-tts.py

使用 Helsinki-NLP 中英文翻译本地部署 - python 实现

通过 Helsinki-NLP 本地部署中英文翻译功能。该开源模型性价比相对高,资源占用少,对于翻译要求不高的应用场景可以使用,比如单词,简单句式的中英文翻译。 该示例使用的模型下载地址:【免费】Helsinki-NLP中英文翻译本…

心觉:激活潜意识财富密码:每天一练,财富自动来

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作200/1000天 为什么有些人总是轻而易举地吸引到财富 而你却努力多年仍然徘徊在财务的困境中? 你每天都在辛苦工作&…

MambaVision原理和源码调测

Hatamizadeh, Ali and Jan Kautz. “MambaVision: A Hybrid Mamba-Transformer Vision Backbone.” ArXiv abs/2407.08083 (2024): n. pag. 1.模型原理 关键思路: 通过重新设计Mamba的架构和在最终层增加自注意力块,提高了Mamba模型对视觉特征的建模能力…

C语言练习

题目: 1.运用switch选择语句,编写一段C语言,请根据输入的数字,显示相应的星期日,如果数字所对应的星期日并不存在请显示“抱歉,您输入的内容并不存在。” 分析:1.在本题中,要运用到…

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

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

【网络安全】漏洞案例:提升 Self-XSS 危害

未经许可,不得转载。 文章目录 Self-XSS-1Self-XSS-2Self-XSS-1 目标应用程序为某在线商店,在其注册页面的First Name字段中注入XSS Payload: 注册成功,但当我尝试登录我的帐户时,我得到了403 Forbidden,即无法登录我的帐户。 我很好奇为什么我无法登录我的帐户,所以我…

如何破解 AI 聊天机器人让它们吐露秘密!窥探 AI 系统指令的 10 种技巧

​ 有时,为了确保 AI 的安全性和透明性,用户需要自己动手,揭开系统指令的面纱。 如果人工智能现在已经成为生活中的事实,并影响着我们的福祉,人们理应知道它的运作原理。 对一些人来说,科幻电影中的经典…

新装ubuntu22.04必做两件事,不然可能没法用

一、换服务源 在全部里面找到软件和安装;打开后 在更多里面匹配一下最适合自己的软件源;这个过程比较漫长;要耐心等待 二、换软件安装中心 先执行: sudo apt upgrade 后执行: sudo apt install plasma-discover…

初级网络工程师之从入门到入狱(四)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、Wlan应用实战1.1、拓扑图详解1.2、LSW11.3、AC11.4、抓包1.5、Tunnel隧道模式解析1.6、AP、…

【AIF-C01认证】亚马逊云科技生成式 AI 认证正式上线啦

文章目录 一、AIF-C01简介二、考试概览三、考试知识点3.1 AI 和 ML 基础知识3.2 生成式人工智能基础3.3 基础模型的应用3.4 负责任 AI 准则3.5 AI 解决方案的安全性、合规性和监管 四、备考课程4.1 「备考训练营」 在线直播课4.2 「SkillBuilder」学习课程 五、常见问题六、参考…

Flutter技术学习

以下内容更适用于 不拘泥于教程学习,而是从简单项目入手的初学者。 在开始第一个项目之前,我们先要了解 两个概念。 Widget 和 属性 Widget 是用户界面的基本构建块,可以是任何 UI 元素。属性 是 widget 类中定义的变量,用于配…

【IEEE独立出版 | 厦门大学主办】第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

【IEEE独立出版 | 厦门大学主办】 第四届人工智能、机器人和通信国际会议(ICAIRC 2024) 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 2024年12月27-29日 | 中国厦门 >>往届均已成功见刊检索…

深入理解Transformer的笔记记录(精简版本)NNLM → Word2Vec

文章的整体介绍顺序为: NNLM → Word2Vec → Seq2Seq → Seq2Seq with Attention → Transformer → Elmo → GPT → BERT 自然语言处理相关任务中要将自然语言交给机器学习中的算法来处理,通常需要将语言数学化,因为计算机机器只认数学符号…