C++ 基本语法讲解

由 5+1 发布

这篇文章将会帮助你继续学习 C++。

基本程序结构

下面的这些是基本的程序结构,所有的程序都需要遵循这个结构来写。

#include <iostream>
// 其它更多的头文件 ...

using namespace std;
 
// main() 函数是程序开始执行的地方
 
int main()
{
   cout << "Hello World"; // 输出 Hello World
   return 0; // 程序结束
}

这些在“入门”那篇也涉及过了,就不多说了。

头文件

头文件通常用 #include <...> 来引用,下面是常用的头文件:

头文件描述
iostreamC++ 基本头文件,必写
cstdioC 基本头文件,常用
cmath数学头文件,含有公式等
cstringC++ string 头文件,处理字符串常用

基本语句(不要忘分号)

在 C++ 中,所有的语句的结构都由 语句内容 + ; 构成,下面是一些例子:

x = y;
sum = a + b;
MyCoolFunction(x);

分号是大家经常忘的东西,所以我在加粗强调一遍。

由于 C++ 不用回车换行来区分语句,所以你也可以把一些语句叠在一行里写,例如:

x = y; sum = a + b; MyCoolFunction(x);

关于空格

空格是个人编程习惯,写不写均可,我个人建议加上空格,这样可以让你的代码读起来更加舒服。

标识符

标识符相当于大家的姓名,用于区分不同的变量等内容,就是名称。

一个标识符以字母 A-Za-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字 0-9

同时也要注意要避免这些关键字

关键字

合法的标识符:

haha    a    var1    g123    _yEp

非法的标识符:

if    else    123haha    _    e
e 在 C++ 中是作为数量级出现的,不可以作为标识符使用。

注释

程序的注释是解释性语句,您可以在 C++ 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。

C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。分为两种,如下:

  • // ... 用于单行注释
  • /* 这里可以分割很多行 */ 用于多行注释

变量

变量类型

C++ 提供了很多的变量类型,如下表(不全):

类型说明
布尔型 bool可以存储 true (真) false (假) 两种状态 (1字节)
整型 int存储整数,最基本的类型 (4字节)
字符型 char可以存储单个字符(如字母、字符型数字等)(1字节)
浮点 float可以存储小数(4字节)
双浮点 double可以存储更大的小数(8字节)

typedef

通过 typedef 可以把一个类型命名为另一个类型,例如:

typedef int mytype;
mytype var; // 相当于 int var;

变量作用域

  • 在一个函数内声明的变量叫做“局部变量”
  • 在函数外声明的变量叫做“全局变量”

当在函数内声明的局部变量与全局变量重名后,不会发生错误,而是会自动的在函数内只承认函数内的局部变量。

#include <iostream>
using namespace std;

int a = 1; // 全局变量

int main ()
{
    int a = 2, b = 3; // 局部变量
    cout << a << " " << b;
    return 0;
}

此时会输出: 2 3

运算符

赋值运算符

运算符解释
=赋值运算 (a = b)
+=a += b 相当于 a = a + b
-=a -= b 相当于 a = a - b
*=a *= b 相当于 a = a * b
/=a /= b 相当于 a = a / b
%=a %= b 相当于 a = a % b

算术运算符

C++ 的几个算数运算符:

运算符解释
+加法运算 (a + b)
-减法运算 (a - b)
*乘法运算 (a * b)
/除法运算 (a / b)
%取余运算,就是 a / b 的余数 (a % b)
++自增运算,整数值增加 1 (a ++)
--自减运算,整数值减去 1 (a --)

例子:

#include <iostream>
using namespace std;
 
int main()
{
   int a = 21;
   int b = 10;
   int c;
 
   c = a + b;
   cout << "Line 1 - c 的值是 " << c << endl ;
   c = a - b;
   cout << "Line 2 - c 的值是 " << c << endl ;
   c = a * b;
   cout << "Line 3 - c 的值是 " << c << endl ;
   c = a / b;
   cout << "Line 4 - c 的值是 " << c << endl ;
   c = a % b;
   cout << "Line 5 - c 的值是 " << c << endl ;
 
   int d = 10;   //  测试自增、自减
   c = d++;
   cout << "Line 6 - c 的值是 " << c << endl ;
 
   d = 10;    // 重新赋值
   c = d--;
   cout << "Line 7 - c 的值是 " << c << endl ;
   return 0;
}

运行后会得到这些结果:

Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 10
Line 7 - c 的值是 10

关系运算符

下面是关系运算符:

运算符描述
==是否相等,相等为真
!=是否相等,相等为假
>是否大于,大于为真
<是否小于,小于为真
>=是否大于等于,大等于为真
<=是否小于等于,小等于为真

例子:

#include <iostream>
using namespace std;
 
int main()
{
   int a = 21;
   int b = 10;
   int c ;
 
   if( a == b )
   {
      cout << "Line 1 - a 等于 b" << endl ;
   }
   else
   {
      cout << "Line 1 - a 不等于 b" << endl ;
   }
   if ( a < b )
   {
      cout << "Line 2 - a 小于 b" << endl ;
   }
   else
   {
      cout << "Line 2 - a 不小于 b" << endl ;
   }
   if ( a > b )
   {
      cout << "Line 3 - a 大于 b" << endl ;
   }
   else
   {
      cout << "Line 3 - a 不大于 b" << endl ;
   }
   /* 改变 a 和 b 的值 */
   a = 5;
   b = 20;
   if ( a <= b )
   {
      cout << "Line 4 - a 小于或等于 b" << endl ;
   }
   if ( b >= a )
   {
      cout << "Line 5 - b 大于或等于 a" << endl ;
   }
   return 0;
}

运行后的结果是:

Line 1 - a 不等于 b
Line 2 - a 不小于 b
Line 3 - a 大于 b
Line 4 - a 小于或等于 b
Line 5 - b 大于或等于 a

逻辑运算符

下面是逻辑运算符:

运算符描述
&&两个都是真,则为真
两个竖线有一个是真,则为真
!非,这个会把真变为假,假变为真

例子:

#include <iostream>
using namespace std;
 
int main()
{
   int a = 5;
   int b = 20;
   int c ;
 
   if ( a && b )
   {
      cout << "Line 1 - 条件为真"<< endl ;
   }
   if ( a || b )
   {
      cout << "Line 2 - 条件为真"<< endl ;
   }
   /* 改变 a 和 b 的值 */
   a = 0;
   b = 10;
   if ( a && b )
   {
      cout << "Line 3 - 条件为真"<< endl ;
   }
   else
   {
      cout << "Line 4 - 条件不为真"<< endl ;
   }
   if ( !(a && b) )
   {
      cout << "Line 5 - 条件为真"<< endl ;
   }
   return 0;
}
Line 1 - 条件为真
Line 2 - 条件为真
Line 4 - 条件不为真
Line 5 - 条件为真

  • 分类: C++
  • 标签: C++
  • 浏览: 35

暂无评论

发表评论