当前位置:网站首页>What details does C + + improve on the basis of C
What details does C + + improve on the basis of C
2020-11-09 08:25:00 【osc_anefoz50】
C++ Is in C Based on the improvement of language ,C A lot of grammar of language is in C++ Is still widely used , for example :
C++ Still use char、short、int、long、float、double Basic data type ;
C++ Still use if...else、while、for、switch、break As a branching or cyclic structure ;
C++ Still use +、-、*、/、%、++、--、<<、>> Equal operator ;
C++ Still use typedef、#define、enum、struct etc. ;
C++ Still use C The classic pointer in language (Pointer), And the scope of use has increased , Even indispensable .
Now let's talk about C++ What details have been improved .
Variable definition position
ANSI C Regulations , All local variables must be defined at the beginning of the function , There must be no other execution statement until the variable is defined .C99 The standard removes this restriction , however VC/VS Yes C99 It's not very positive , It still requires variables to be defined at the beginning of the function . Look at the code below :
· #include <stdio.h>
· · int main(){
· · int a;
· · scanf("%d", &a);
· · int b;
· · scanf("%d", &b);
· · int c = a + b;
· · printf("%d\n", c);
· ·
· · return 0;
· · }
· Save the code to the source file main.c, So it can be in GCC、Xcode Compiled through , But in VC/VS I'll make a mistake next time .GCC、Xcode Yes C99 Our support is very good , You can define variables anywhere in a function ; but VC/VS Yes C99 There is little support for , All variables must be defined at the beginning of the function .
Save the above code to the source file again main.cpp, So it's in GCC、Xcode、VC/VS Can be compiled under . This is because C++ The original restrictions have been lifted , Variables are defined before they are used , It is not mandatory that all variables must be defined at the beginning of a function .
Note the suffix of the source file ,.c yes C The language code ,.cpp yes C++ Code , They compile differently .
Another benefit of lifting restrictions is , Can be in for A variable is defined in the control statement of the loop , Please see the following example :
· #include <iostream>
· · using namespace std;
· ·
· · int sum(int n){
· · int total = 0;
· · // stay for The conditional statement of the loop defines variables inside i
· · for(int i=1; i<=n ;i++){
· · total += i;
· · }
· · return total;
· · }
· ·
· · int main(){
· · cout<<"Input a interge: ";
· · int n;
· · cin>>n;
· · cout<<"Total: "<<sum(n)<<endl;
· · return 0;
· · }
· Running results :
Input a interge: 10
Total: 55
stay for Internally defined loop control variables i, It makes the code look more compact , And make i The scope of is limited to the whole of for Inside the loop statement ( Including cycle conditions and loop bodies ), It reduces the probability of naming conflicts . In the subsequent coding process , I recommend this way of writing .
In the process of learning, there will always be some difficulties and doubts , I came here the same way , Know your difficulties . So I created a colony of penguins :105+302+98+69, For communication and learning , If you have questions you don't understand, you can ask them in the group , There will also be me in the group C/C++ The study materials of the students are the same as before VIP Class video , Can be shared with you for free , Let's grow together , To be an excellent person .
Boolean type (bool)
stay C In language , There are two results of relational operation and logical operation , True and false :0 Said the false , Not 0 Said really . for example :
· #include <stdio.h>
· · int main(){
· · int a, b, flag;
· · scanf("%d %d", &a, &b);
· · flag = a > b; //flag Save the result of relational operations
· · printf("flag = %d\n", flag);
· ·
· · return 0;
· · }
· Running results :
10 20
flag = 0
C Language doesn't support grammar completely “ really ” and “ false ”, Just use 1 and 0 To represent the . This is in C++ Has been improved in ,C++ Added bool type , It usually occupies 1 Byte length .bool Type has only two values ,true and false:true Express “ really ”,false Express “ false ”. Please see the following example :
· #include <iostream>
· · using namespace std;
· ·
· · int main(){
· · int a, b;
· · bool flag; // Boolean variables
· · cin>>a>>b;
· · flag = a > b;
· · cout<<"flag = "<<flag<<endl;
· ·
· · return 0;
· · }
· 10 20
flag = 0
Unfortunately , stay C++ Use in cout Output bool The value of a variable is still a number 1 and 0 Express , instead of true or false.Java、PHP、JavaScript They also support Boolean types , But the output is true or false, I arbitrarily think it's more scientific .
You can also be explicit about bool Variable assignment , for example :
· #include <iostream>
· · using namespace std;
· ·
· · int main(){
· · bool flag = true;
· · if(flag){
· · cout<<"true"<<endl;
· · }else{
· · cout<<"false"<<endl;
· · }
· ·
· · flag = false;
· · if(flag){
· · cout<<"true"<<endl;
· · }else{
· · cout<<"false"<<endl;
· · }
· ·
· · return 0;
· · }
· Running results :
true
false
Be careful ,true and false yes C++ Keywords in .
In later coding , I recommend using bool Variables are used to represent logical operations 、 Relational operations and the values of switching variables
版权声明
本文为[osc_anefoz50]所创,转载请带上原文链接,感谢
边栏推荐
- The file size uploaded by WordPress import exceeds php.ini Upload defined in_ max_ Filesize value -- & gt; solution.
- Huawei HCIA notes
- Depth first search and breadth first search
- 商品管理系统——SPU检索功能
- Save code
- 几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!
- For the first time open CSDN, this article is for the past self and what is happening to you
- 简单介绍c#通过代码开启或关闭防火墙示例
- The difference between GDI and OpenGL
- Talk about my understanding of FAAS with Alibaba cloud FC
猜你喜欢

OSChina 周一乱弹 —— 程序媛的青春

APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错!

Core knowledge of C + + 11-17 template (2) -- class template

Android emulator error: x86 emulation currently requires hardware acceleration solution

Graph node classification and message passing

20201108 programming exercise exercise 3

Programmers should know the URI, a comprehensive understanding of the article

Several common playing methods of sub database and sub table and how to solve the problem of cross database query

商品管理系统——整合仓库服务以及获取仓库列表

无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题
随机推荐
WordPress Import 上传的文件尺寸超过php.ini中定义的upload_max_filesize值--&gt;解决方法。
Dark网站的后端为什么选择F#? - darklang
14. Introduction to kubenetes
A solution to the problem that color picker (palette) cannot use shortcut keys in sublime Text3 plug-in
The file size uploaded by WordPress import exceeds php.ini Upload defined in_ max_ Filesize value -- & gt; solution.
Windows环境下如何进行线程Dump分析
API部分的知识点复习
The difference between GDI and OpenGL
How does semaphore, a thread synchronization tool that uses an up counter, look like?
Why don't we use graphql? - Wundergraph
Common feature pyramid network FPN and its variants
Natural language processing (NLP) roadmap - KDnuggets
Start learning discrete mathematics again
Application of cloud gateway equipment on easynts in Xueliang project
3.你知道计算机是如何启动的吗?
How to do thread dump analysis in Windows Environment
Chapter 5 programming
STS安装
结合阿里云 FC 谈谈我对 FaaS 的理解
服务器性能监控神器nmon使用介绍