【Linux C++ 系列 】02 C++基本语法

举报
jackwangcumt 发表于 2022/07/03 17:50:20 2022/07/03
【摘要】 本文将重点讲解C++的基本语法,其中涉及到数据类型,变量作用域、条件判断语句以及函数等知识。

1 数据类型


     现实世界中的数据,有不同的类型,比如有的数据是文本类型,有的数据类型是数值,而有的类型是布尔类型的。作为一门编程语言,C++支持多种数据类型,大致分为如下几类:
      01)基本数据类型: 内置可直接使用的数据类型,包含Integer, Character, Boolean, Floating Point, Double Floating Point, Void, and Wide Character
      02)派生数据类型:从基本数据类型派生的类型,包含 function, array, pointer 和 reference
      03)用户自定义类型:包含 class, structure, union, enumeration 和Typedef
      选用合适的数据类型对现实世界问题进行抽象,一方面可以降低内存占用,另一方面也可以让程序更加的稳定和获得良好的性能。   

#include <iostream>
using namespace std;

int main()
{
    int a = 7 ;
    cout<<"sizeof(a) = " << sizeof(a) <<endl;
    float f1 = 3.14 ;
    cout<<"sizeof(f1) = " << sizeof(f1) <<endl;
    double d1 = 2.5 ;
    cout<<"sizeof(d1) = " << sizeof(d1) <<endl;
    char k = 'E' ;
    cout<<"sizeof(k) = " << sizeof(k) <<endl;
    bool isOk = true ;
    cout<<"sizeof(isOk) = " << sizeof(isOk) <<endl;
    string msg = "Hello Msg" ;
    cout<<"sizeof(msg) = " << sizeof(msg) <<endl;
    unsigned int ui = 99;
    cout<<"sizeof(ui) = " << sizeof(ui) <<endl;
    long long int lli = 99;
    cout<<"sizeof(lli) = " << sizeof(lli) <<endl;
    long double ld = 7.89;
    cout<<"sizeof(ld) = " << sizeof(ld) <<endl;
    return 0;
}

执行如下命令进行编译:

g++ demo02.cpp -o demo02
./demo02

输出信息如下图所示:

root@ubuntu:/home/jack/wmsoft/mycpp# g++ demo02.cpp -o demo02
root@ubuntu:/home/jack/wmsoft/mycpp# ./demo02
sizeof(a) = 4
sizeof(f1) = 4
sizeof(d1) = 8
sizeof(k) = 1
sizeof(isOk) = 1
sizeof(msg) = 32
sizeof(ui) = 4
sizeof(lli) = 8
sizeof(ld) = 16
root@ubuntu:/home/jack/wmsoft/mycpp# 

从上图可知,不同数据类型的长度是不同的。在C++中,整型还细分为 : short int ; unsigned short int ; unsigned int ; int ; long int ; unsigned long int ; long long int 和 unsigned long long int 。

2 条件语句


     下面给出C++基本的条件判断语句,其中包含 if..else... 条件判断和 for...循环语句,下面给出具体的示例:

#include <iostream>
using namespace std;

int main()
{
    const float PI = 3.14 ;
    cout << " PI = " << PI << endl;
    int a = 2 ;
    int b = 7 ;
    if ( a < b ) {
        cout << " a < b " << endl;
    }else{
        cout << " a >= b " << endl;
    }
    int s = 0 ;
    for (int i = 0; i <= 100; i++) {
        s += i ;
        
    }
    cout << " sum(1..100) =  " << s << endl;
    int idx = 100 ;
    s = 0 ;
    while ( idx > 0 ){
        s += idx ;
        idx -= 1 ;
    }
    cout << " s =  " << s << endl;
    return 0;
}

执行如下命令进行编译:

g++ demo03.cpp -o demo03
./demo03

输出信息如下图所示:

root@ubuntu:/home/jack/wmsoft/mycpp# g++ demo03.cpp -o demo03
root@ubuntu:/home/jack/wmsoft/mycpp# ./demo03
 PI = 3.14
 a < b 
 sum(1..100) =  5050
 s =  5050
root@ubuntu:/home/jack/wmsoft/mycpp#

3 函数和变量作用域


     C++语言中的变量和其他语言类似,也有全局变量和局部变量,同时也有静态变量。下面给出函数和变量作用域的基本示例:

#include <iostream>
using namespace std;

int a = 7 ;

int sum(int a, int b);

void print_a (){
    cout << " a =  " << a << endl;
}

int main()
{
    int a = 2 ;
    int b = 5 ;
    int c = sum(a,b);
    cout << " sum(a,b) =  " << c << endl;
    cout << " a =  " << a << endl;
    print_a();
    return 0;
}

int sum(int a, int b){
    return a + b ;
}

执行如下命令进行编译:

g++ demo04.cpp -o demo04
./demo04

输出信息如下图所示:

root@ubuntu:/home/jack/wmsoft/mycpp# g++ demo04.cpp -o demo04
root@ubuntu:/home/jack/wmsoft/mycpp# ./demo04
 sum(a,b) =  7
 a =  2
 a =  7
root@ubuntu:/home/jack/wmsoft/mycpp# 

从输出结果可知,变量 int a = 7 在函数外定义,是全局变量,而在函数main内定义的 int a = 2 是局部变量。在C++语言中,函数需要在调用前,需要先声明,这也是头文件需要的原因。如果将 int sum(int a ,int b);进行注释后,再进行编译,则会报错:

0701.jpg

07.jpg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。