C语言常见知识点

news2025/7/17 1:57:52

目录

一、单位

二、变量

三、常量

四、转义字符

五、操作符

六、指针

七、数组


一、单位

        在刚接触编程时,肯定会了解到计算机的存储单位,它们由小到大分别为bit(位)、Byte(字节)、KB(千字节)、MB(兆字节)、GB(吉字节)、TB(太字节)等。同为存储单位,自然也就可以进行换算,其换算关系如下:

        1 Byte = 8 bit;

        1 KB = 1024 Byte;

        1 MB = 1024 KB;

        1 GB = 1024 MB;

        1 TB = 1024 GB。

二、变量

        看完了存储单位,接下来就到了变量了。对于变量,少不了要用它来进行操作,自然也得注意一些使用要点,若是不注意,就极有可能出错,下面是一些注意要点:

        1、局部变量的作用域是局部变量所在的局部范围,全局变量的作用域是整个程序;

        2、当全局变量和局部变量的变量名相同时,编译器优先使用局部变量;

        3、为提高代码质量,在写代码的过程中,应尽可能的避免使用全局变量;

        在这,有必要着重讲一下变量的命名规则首先,变量名只能由字母数字下划线组成,其中需要注意的是:变量名不可直接用数字作开头;接下来就是变量名不宜过长,应当简洁明了,同时也应当让人一看变量名就大概清楚该变量的用途;还有就是在对结构体进行命名时,每个单词的首字母都要大写,例如:Peo;而对变量函数进行命名时,则是第一个单词的首字母不用大写,其余单词的首字母要大写,例如:initQueue;当然,也可用下划线来进行命名,例如:init_queue;最后就是变量名不可与关键字重复。

        变量的类型有很多,其中就有极其常见的基本数据类型,可分为 char、short、int、long、long long、float、double,接着每一个又可分为 signed 和 unsigned 类型,如:char 又可分为 signed char 和 unsigned char 两种类型。

三、常量

        常量也是极其常用的,其包括字面常量、const 修饰的常变量、#define 定义的标识符常量以及枚举常量。

        注意:const 修饰的常变量无法用来创建数组。

四、转义字符

        转义字符有很多,下面是一些常见的转义字符及含义:

        \':用于表示单引号字符;

        \'':用于表示双引号字符;

        \\:用于表示一个反斜杠;

        \a:警告字符;

        \b:退格符;

        \f:进纸符;

        \t:水平制表符;

        \v:垂直制表符;

        \n:换行;

        \ddd:ddd 为 1~3 个八进制数字;

        \xdd:dd 为 2 个十六进制数字。

        注意:虽然转义字符看起来有很多个字符,但它只能算是一个字符。

五、操作符

        操作符可谓是极其的多,分别有:算术操作符(+、-、*、/、%)、移位操作符(>>、<<)、位操作符(&、^、|)、赋值操作符(=、+=、-=、*=、/=、&=、|=、^=、>>=、<<=)、单目操作符(!、-、+、&、sizeof、~、--、++、*、(类型))、关系操作符(>、>=、==、<=、<、!=)、逻辑操作符(&&、||)、条件操作符(exp1 ? exp 2 : exp3)、逗号表达式(exp1, exp2, exp3……, expN)、下标引用操作符( [ ] )、函数调用操作符( ( ) )以及 . ->

        这里需要注意的是:

        1、移位操作符和位操作符只针对整数;

        2、sizeof 的后面是类型时,才必须加括号;

        3、在 && 连接多个逻辑表达式时,只要前面有一个表达式为假,那后面的表达式就都不用判断了,因为此时整个表达式为假;

        4、在 || 连接多个逻辑表达式时,只要前面有一个表达式为真,那后面的表达式就都不用判断了,因为此时整个表达式为真;

        5、逗号表达式中只有最后一个表达式的值是真正决定整个表达式的值,前面的表达式只是对最后一个表达式的结果产生影响;

六、指针

        指针让代码更便捷且高效,但它也很危险,稍不注意就会 bug 频出,可谓是一把双刃剑。从指针的本质来看,可以发现指针其实也是个变量,也是在内存中开辟一个空间来存放数据,只不过存放的是其他变量的地址。

        根据其所存放的是何种变量的地址,就可以知道该指针是什么类型,例如:若存放的是 int 类型的变量的地址,那该指针变量的类型就是 int* 类型。当然,指针变量也可存放指针变量的地址,这时就会分出一级指针、二级指针等类型,一级指针就是刚刚举的例子中 int* 类型的指针变量,存放的地址不是指针变量的地址,至于二级指针则存放的是一级指针的地址,后面更多级的指针以此类推就行了。

        既然,指针可以存指针的地址,那自然也可以存数组、函数的地址。由此便可得到数组指针、函数指针

        注意:

        1、指针的类型会影响对其解引用时所访问空间大小。例如:int* 类型的指针解引用时,只能访问 4 个字节,而 double* 类型的指针解引用时,可以访问 8 个字节;

        2、指针的类型会影响对其加或减正整数时所跳过的地址大小。例如:int* 类型的指针加一时,会跳过 4 个字节的地址,而对double* 类型的指针加一时,会跳过 8 个字节的地址;

        3、指针减指针的绝对值是两指针之间的元素个数,只不过执行此操作时,要保证这两个指针指向同一个数组,且两指针的类型相同;

        4、无指针加指针这一操作。

七、数组

        前面指针可分为一级指针、二级指针等,其实,数组也有类似的分类,如:一维数组、二维数组、三维数组等。对这些数组的理解也可近似于前面指针的理解,如:一维数组中存放的元素不是数组,二维数组存放的元素是一维数组,三维数组中存放的元素是二维数组。还有就是,指针能存放数组的地址,那数组也可存放指针,这时的数组就为指针数组了,例如:int* arr[10]; 。

        注意:在使用数组时,要小心数组的越界访问。

附:若有不足,望指出。

^_^感谢^_^

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

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

相关文章

2024 第一次周赛

A: 题目大意 骑士每连续 i 天每天会得到 i 个金币&#xff0c;&#xff08;i 1&#xff0c; 2&#xff0c; 3 &#xff0c; …&#xff09;,那么展开看每一天可以得到的金币数&#xff1a;1 2 2 3 3 3 4 4 4 5 5 5 5 5 … 可以发现就是1个1 &#xff0c;2个2, 3个3…,那么我…

P20机型HW睡眠省电-调研

摘要 AI睡眠场景识别 不激进的智能管控 睡眠省电 UI 以前有单独的睡眠开关选项&#xff0c;现在没有了&#xff0c;但是智能充电模式是使用AI睡眠模式 睡眠识别 华为专利上提到的论文《BTP-A Bedtime Predicting Algorithm》 各种事件状态&#xff08;亮灭屏、alarm、主动…

《数字信号处理》学习08-围线积分法(留数法)计算z 逆变换

目录 一&#xff0c;z逆变换相关概念 二&#xff0c;留数定理相关概念 三&#xff0c;习题 一&#xff0c;z逆变换相关概念 接下来开始学习z变换的反变换-z逆变换&#xff08;z反变化&#xff09;。 由象函数 求它的原序列 的过程就称为 逆变换。即 。 求z逆变换…

RTR-Chapter8

第八章 光与颜色 光量辐射度量学光度学色度学使用RGB颜色进行渲染 从场景到屏幕HDR显示编码色调映射色调再现变换曝光 颜色分级 光量 辐射度量学 辐射度量学&#xff08;radiometry&#xff09;研究的是对电磁辐射&#xff08;electromagnetic radiation&#xff09;的测量&am…

linux线程 | 线程的控制(二)

前言&#xff1a; 本节内容是线程的控制部分的第二个小节。 主要是列出我们的线程控制部分的几个细节性问题以及我们的线程分离。这些都是需要大量的代码去进行实验的。所以&#xff0c; 准备好接受新知识的友友们请耐心观看。 现在开始我们的学习吧。 ps:本节内容适合了解线程…

开源情报(OSINT)入门:初学者指南

欢迎来到令人兴奋的开源情报 (OSINT) 世界&#xff01;如果您是该领域的新手&#xff0c;OSINT 就是收集和分析公开信息以获取见解并制作情报产品。 无论您是安全爱好者、记者还是只是对 OSINT 感兴趣&#xff0c;本入门指南都将带您了解基础知识&#xff0c;让您开始第一次&a…

MySQL进阶学习一(2024.10.07版)

2024-10-06 -------------------------------------------------------------------------------------------------------------------------------- 1.一条SQL语句是如何执行的 单进程的多线程模型 MySQL的物理目录 show global variables like "%basedir%"; …

初学Vue(3)(内置指令)

文章目录 十四、内置指令v-textv-htmlv-cloak&#xff08;没有值&#xff09;v-oncev-pre自定义指令一、定义语法二、配置对象中常用的3个问题三、备注 十四、内置指令 回顾&#xff1a; v-bind &#xff1a;单向绑定解析表达式&#xff0c;可简写为 :xxx v-model : 双向数据绑…

HTML快速入门--第一节--五个基本标签

一、网络编程的三大基石 1.1 url 统一资源定位符&#xff1a; 网址:整个互联网中可以唯一且准确的确定一个资源的位置 (url项目外) 网址:https://www.baidu.com/ https://www.baidu.com/ 协议://ip端口/项目名/页面名 协议:交通法规获取资源 ip端口 &#xff08;域名&…

安全企业邮箱优势与局限,密码策略反馈

密码策略是什么呢&#xff1f;如何设置出安全可靠的密码策略呢&#xff1f;企业邮箱安全始于密码策略&#xff0c;包括复杂性、长度、更新频率、重用限制和两步验证。实施需全员培训、密码管理工具、审计与监控。一文为你详细介绍密码策略。 一、如何设置好的密码策略&#xff…

【JavaScript】JavaScript开篇基础(3)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

【微信小程序_11_全局配置】

摘要:本文介绍了微信小程序全局配置文件 app.json 中的常用配置项,重点阐述了 window 节点的各项配置,包括导航栏标题文字、背景色、标题颜色,窗口背景色、下拉刷新样式以及上拉触底距离等。通过这些配置可实现小程序窗口外观的个性化设置,提升用户体验。 微信小程序_11_全…

总看别人写贪吃蛇,自己也来写一个吧

贪吃蛇是一个流行度非常高的游戏&#xff0c;玩法十分简单&#xff0c;从最初的方块机上就有这个游戏了&#xff0c;后来出现的手机中也是加入了这个游戏&#xff0c;无聊的时候可以打发时间玩一会。这个游戏可谓是非常的简单&#xff0c;容易上手&#xff0c;所以直到现在&…

番外篇 | 常用的激活函数汇总 | 20+种激活函数介绍及其公式、图像等

前言:Hello大家好,我是小哥谈。激活函数(Activation Function)是神经网络中的一种重要概念,用于控制神经网络中神经元的激活方式。在传统的神经网络中,激活函数被用来将神经元的输出从数值转换为可以被神经网络其他部分理解的非数值形式。激活函数通常被定义为神经元的输…

电能表预付费系统-标准传输规范(STS)(2)

5. 标准传输规格参考模型 5.1 一般付费电表功能参考图 In a single-device payment meter all the essential functions are located in a single enclosure as depicted in Figure 1 above, while in a multi-device payment meter it is possible for the TokenCarrierToMe…

Pagehelper获取total错误

前言 在使用若依框架的pagehelper时&#xff0c;给分页表设置数据的时候前端只收到了分页的那一页的数据&#xff0c;总记录数不符合要求 我想要的效果如下&#xff0c;可以实现分页&#xff0c;和显示总记录数 但是实际情况为 但是我的数据库有11条记录&#xff0c;他这里明…

【python学习】1-2 配置python系统环境变量

1.点击“我的电脑”右键&#xff0c;点击属性&#xff0c;点击“高级系统设置”&#xff0c;再点击环境变量。 2.选择“系统变量”中的Path后&#xff0c;点击编辑。 3.点击新建&#xff0c;添加如图两个路径&#xff0c;即是python安装的路径位置后&#xff0c;点击确定。

前端脚手架插件安装总结(axios,element-ui,bootstrap,echarts等)

1.打开前端项目终端 输入命令 vue ui 进入图形化界面 a.选择插件 b.选择添加插件 c.安装插件 d.完成安装

手写mybatis之完善ORM框架,增删改查操作

前言 目前这个框架中所提供的 SQL 处理仅有一个 select 查询操作&#xff0c;还没有其他我们日常常用的 insert、update、delete&#xff0c;以及 select 查询返回的集合类型数据。 其实这一部分新增处理 SQL 的内容&#xff0c;也就是在 SqlSession 需要定义新的接口&#xff…

Java 读取word , 作为私有知识库做RAG答疑

检索与生成的技术&#xff08;RAG)&#xff0c;可以提升文本精准度与企业数据相关性 检索增强生成 (RAG) 是一种技术&#xff0c;它结合了检索模型和生成模型&#xff0c;旨在通过私有或专有的数据源来辅助文本生成。在使用大模型时&#xff0c;一个常见问题是模型可能会产生“…