「2」C++/C程序的基本概念

news/2024/11/24 10:46:48/

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

目录

🐰标识符

🏡前言

🌸标识符的属性

🤔提示

🐰转义字符

🏡前言

🌸转义字符的使用

🤔提示

🐰运算符

🌸运算符运行原理

🌸运算符的优先级和结合律

🌸三目运算符


 

🐰标识符

🏡前言

C++/C的标识符是由字母,数字和下划线(_)组成的字符序列,用来标识一个程序元素,例如变量,函数,宏,类型名等。标识符可以任意长,但是标准c语言规定,编译器只取前31个字符作为有效的标识符;而标准的c++则取前255个字符作为有效的标识符

🌸标识符的属性

每一个标识符都具有如下的几个属性:值、值的类型、名字、存储类型、作用域范围、连接类型、生存周期等。例如C函数,函数名其实就是函数体代码在内存中的首地址,在编译时就可以确定其值,因此是一个常量,这是它的值;值的类型是函数指针类型;存储类型默认为extern,除非声明为static;作用域范围为文件作用域;连接类型默认为外连接,除非声明为static;生命周期为永久(静态)。

🤔提示

(1)避免使用前置“_”来定义你自己的标识符,因为c语言及实现使用它来定义一些内部名称或预定义的宏。因此那样使用的话就有可能造成冲突。
(2)给表示起一个有意义的名字,能够“望文生义”。
(3)使用长的标识符名字并不会增大可执行代码的体积,因此不要使用使用过于简单的名字。但是也不要使用过长的名字。应该遵循用最短的名字包含最多的信息的原则

🐰转义字符

🏡前言

在C/C++中,有些字符有着特殊的含义,“%”是取余,“ " ”表示字符串的开始和结束,“ ?”是三元操作符?:的成员,等等。

🌸转义字符的使用

如果他们出现在普通字符或格式控制字符串中的时候,就需要做出处理。有两种方法:1.使用转义字符2.直接引用ASCII码值

 

在字符串中可以使用“\0OOO”或“\xHH”来引用ASCII码表中的仍何一个字符,其中OOO和HH分别表示该字符的八进制数据和十六进制数据ASCII码值。

🤔提示

要区分“换行”与“回车”的语义。首先,他们的ASCII码值不同。“换行”字符一般用于文件,即从键盘输入的“回车”字符转换为“换行”字符保存而不是直接保存“回车”字符;“换行”还用于程序的输出控制,即输出一个“换行”字符以指示终端输出从新行开始。而“回车”是键盘功能,用于输入控制,例如代替“鼠标左击”和表示输入的结束或新行输入,它不能输出。因此要记住:输出“换行”,输入“回车”。不过有些字符输入函数可以把键盘输入的“回车”字符自动转换为“换行”字符返回,例如getchar()。

🐰运算符

🌸运算符运行原理

C++/C有三种运算符:算数运算符、关系运算符和逻辑运算符。运算符用来构成表达式并指示计算机执行计算,其基本特性就是优先级和结合律。在没有使用小括号确定一个复合表达式中各运算符的计算顺序的情况下,编译器将使用它们的优先级和结合律来确定计算顺序。优先级越高越先计算,相同优先级的运算符之间或同一运算符之间的计算顺序按照结合律来确定。

🌸运算符的优先级和结合律

 

‼️注:如果代码中的运算符比较多,用括号来确定表达式中每一个子表达式的计算顺序,避免使用默认优先级。

🌸三目运算符

“ ? : ”三目运算符(C++/C中唯一的三目运算符
条件表达式? 表达式1: 表达式2;
如果“条件表达式”为真,则整个表达式的值就是“表达式1”的值,“表达式2”忽略;否则整个表达式的值就是“表达式2”的值,“表达式1”忽略
🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸 

http://www.ppmy.cn/news/22878.html

相关文章

Android APK 签名打包原理分析(一)【APK结构分析】

1.引言 最近在看AOSP Apk安装的相关源码时,发现自己对这块知识一直停留到用的层面,并未有深入的了解,例如打包的具体过程、签名的具体过程、渠道打包,最重要的,自己这几年在做系统方面的应用时,也解决过很多apk 安装的问题,修改过部分的系统源码,可是没有把这块知识系…

【Three.js基础】创建场景、渲染场景、创建轨道控制器(一)

🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…

HBase-replication流程

一、核心工作原理二、主要流程解析2.1获取从集群rs列表流程初始化从集群zk连接: 只会在RS启动的时候初始化或者新增peer的时候一次,后续不再初始化,所以不从集群扩容后不能被主集群识别到将从集群的zk连接传递给ReplicationEndpoint:在ReplicationSource…

C++初阶--哈希

目录 unordered系列关联式容器 unordered_map unordered_set 底层结构(哈希) 概念 哈希冲突 哈希函数 哈希冲突解决 1.闭散列 2.开散列 开散列与闭散列比较 模拟实现unordered_map 和 unordered_map HashTable.h UnorderedMap.h UnorderedSet.h 哈希的应用 位图 位图的实现…

【面试题】Java面试题整理6

1.对AOP的理解 相关概念 切面:一个特殊的模块化类。通知:切面类中的具体的方法切点:通知要执行的具体位置 任何一个系统都是由不同的组件组成的,每个组件负责一块特定的功能,当然会存在很多组件是跟业务无关的&…

【回溯算法篇】N皇后问题

🌠作者:阿亮joy. 🎆专栏:《数据结构与算法要啸着学》 🎇座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉…

9-数据库优化

数据库优化通常是为了减轻对数据库压力,优化方式可以从使用缓存、数据库配置、sql和索引优化入手; 使用缓存可以将系统请求先打向缓存,如果缓存中有我们要获取的数据,那将不会再走数据库。 数据库配置方面是指可以通过修改数据库配…

KT中代理属性的实现及使用案例分析

普通的delegate代理属性get/set方法,可以看到类中会声明一个数组保存需要代理的所有KProperty字段信息(包含类名,字段名称,字段签名()) PS:冷知识map也可以用于委托,只要有get/set方…