C++四个基本准则及具体表现

C++编程语言的四个基本准则

几乎所有的C++中的语法推导,都可以按照这几条基本原则来推导。

一、最高准则:无二义性

**对这个准则的理解:**算法的每一个步骤,必须要有确切的含义,计算机通过特殊的规则进行数据处理。当每次进行相同输入时,会输出相同的结果,这就是最高准则。
准则的具体表现:

  1. 运算符的优先级与结合性。
    运算符的优先级能消除一个算式的二义性,使其更合乎人的逻辑,如3+4*5,运算顺序是先乘后加,消除先加后乘的二义性。
    示例:
    int a=3+4*5; cout<<a<<endl;
    此时输出结果为23即进行先乘后加。
    运算符的结合性是指同一优先级的运算符在表达式中的操作方向,如x=y=z,应先将z的值幅值给y,再将y的值幅值给x;
  2. 标识符不能以数字开头
    例如:0x7C7D(16进制数),014(8进制数),均具有二义性。所以数字开头的变量名与C++支持的常量表示法有一个式子,两种含义的部分。这会使程序出错。
  3. 贪心规则
    对于C++语言的一个逻辑算法,虽可能存在多个解决方案,但总是会优先选择“最优解”。
    示例:i+++j,是按照i+(++j)运算还是(i++)+j运算呢?根据贪心规则,在分析符号的时候,编译器会尽可能多地结合有效的符号,例如上面的表达式:“+” 和“++”都是有效地符号,但是“+++”不是有效的符号,因此,经过分析后,最终将表达式解析为:++ +。
i+++j

二、次高准则:高效性

**对这个准则的理解:**在高级语言中,面向过程的C++以短小精悍,简洁高效,能够直接操作备受人们青睐,如指针、引用、内联函数,都使其高效性的体现。
**准则的具体表现:**就以简单的指针为例,指针能够直接对内存单元里的数据进行操作,不必要通过变量名找到数据对应地址,节省了时间开销。

#include <iostream>
 
using namespace std;
 
int main ()
{
   int  var = 20;   // 实际变量的声明
   int* ip;        // 指针变量的声明
   ip = &var;     // 在指针变量中存储 
   cout << "Value of var variable: ";
   cout << var << endl;

三、第三准则:合乎日常习惯

**对这个准则的理解:**程序设计应该尽量贴合日常逻辑思维,违反日常习惯的规则,徒劳增加不必要的理解时间。
准则的具体表现:

  1. 运算的优先级:
    程序员在数学中,乘法的优先级高于加法,先计算乘法再计算加法。同样,运用括号作为最高优先级而先进行其中的运算。这样的设计贴合程序员日常习惯,提升了工作效率。
  2. 二维数组下标表示总行数和总列数:
    例如a[n][m]用下标n和m表示一个n行m列的矩阵,合乎日常习惯。

四、补充准则:相似相同原则

对这个准则的理解:
C++中,如果有两个不同的对象A与B,A有行为a,B有行为b,如果a与b两种行为在逻辑上具有相似性,则C++会为对象A额外增加一个行为b,也会将对象B额外增加一个行为a。
准则的具体表现:(1)变量的初始化:
如定义变量a等于5,一般是int a=5;
但也有int a(5); (括号的初始化,形似对象的初始化);还有int a={5};有int a{5};;以及int a=({5});
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值