C++学习笔记——基本语法

来源:互联网 发布:求推荐淘宝小零食店铺 编辑:程序博客网 时间:2024/06/06 05:32

C++简单程序设计

1. C++语言概述

  • C++语言产生与发展:继承和兼容C的语法,增加了类的支持,C++11包含了核心语言的新机能,扩展了C++标准库
  • 兼容C,支持面向过程,同时支持面向对象和泛型
//iostream为文本文件,相当于预编译时从该文件复制代码#include <iostream>//声明命名空间,相当于std.coutusing namespace std;int main(){  //cout为输出流类的对象,<<为流插入运算,endl结束流  cout << "Hello!" << endl;   cout << "Welcome to C++!" << endl;  return 0;}

C++基本字符集和词法记号:

  • C++字符集:大小写字母、数字、特殊符号
  • 词法记号:关键字(预定义)、标识符(命名)、文字、分隔符((), {}, ;)、运算符,空格(任意空格,tab,Enter)
  • 标识符构成规则:以下划线或字母开头,不是关键词

2. C++ 基本数据类型

C++数据类型:整数类,实数类,布尔类、字符类…

  • 整数类型:基本整型(int),(signedunsigned),(shortlonglong long
  • 实数类型:floatdoublelong double
  • 字符类型:char
  • 字符串类型:有常量无变量,字符数组存储字符串(C风格),推荐用String类
  • 布尔类型:bool

注意C++没有规定int和double的长度,只规定了相对长短关系,系统不同可能不同。

浮点数在计算机中近似存储,所以不能对两个浮点数判等。

3. C++常量与变量

常量:程序运行中值始终不变的量

  • 整数常量:十进制(0 ~ 9),八进制(0 ~ 7),十六进制(0 ~ 9A ~ F)
  • 实数常量:一般形式、指数形式
  • 字符常量:一般字符、特殊字符
  • 字符串常量:C风格以\0为结束
  • 注意前缀和后缀改变类型

变量:程序运行中值可以变化,使用变量名调用内充空间

  • 全局变量:未初始化为默认值
  • 局部变量:为初始化可能会是垃圾数据

初始化方法:

int a = 0;int a(0);//列表初始化不能有数据丢失int a = {0};int a{0};

符号常量:const 来修饰,只能用不能修改,定义时赋值

const double pi (3.14159);

例:对变量与常量的测试

#include <iostream>using namespace std;int main(){  int radius;  cout << "Please enter the radius\n";  cin >> radius;  cout << "The radius is:" <<radius<< '\n';  cout << "PI is:" <<3.14<< '\n';  return 0;}

4. C++运算符与表达式

  • 基本算术运算符:+,-,*,/,%
  • 优先级:先乘除后加减,同级自左向右
  • 自增自减:j++--j
  • 赋值运算:左边对象被赋值、类型与左边相同
  • 复合运算符:+=,-=,*=,/=,<<=,>>=,&=,^=等
  • 逗号运算符:先求1再求2,结果为2的值
a = 3 * 5, 5 * 12;
  • 关系运算符:大小相等关系,<,<=,>,>=(优先级高),==,!=(优先级低),结果为bool类型
  • 逻辑运算符:!,&&,||(优先级由高到低,有短路特性)
  • 条件表达式:

表达式1 ? 表达式2 : 表达式3

​ 表达式1为真,结果为表达式2,否则结果为表达式3.

​ 优先级高于赋值运算符低于逻辑运算符

  • Sizeof运算:计算某个数据、类型、对象所占的字节数
sizeof(short)sizeof x
  • 位运算:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移运算,低位补0),>>(右移运算,补0或补符号位)
c = a & 0xfe    // 某位置零c = a & 0xff    // 取出指定位a = a | 0xff    // 低字节置1
  • 类型转换:由低到高

    • 隐式转换:注意级别,可能丢失数据
    • 显示转换:static_cast、const_cast、dynamic_cast、reinterpret_cast

    类型的级别:

    级别

5. 数据的输入和输出

  • 输入与输出看做信息的流动,通过输入输出流类来实现。
  • 指向屏幕/键盘的标准I/O 类,预定义的插入和提取预算符。
cout << 表达式 << 表达式...cin >> 表达式 >> 表达式...
  • 常用的操纵符:

    操纵符

6. 执行流程的控制

① 选择结构

  • if 语句的语法形式:
 if (表达式) 语句 if (表达式) 语句1 else 语句2 if (表达式) 语句1 elseif (表达式2) 语句2... else 语句n
  • 上述语句均可为大括号括起来的复合语句
int x, y;cout << "Enter x and y:";cin >> x >> y;if (x != y)  if (x > y)    cout << "x > y" << endl;  else    cout << "x < y" << endl;else  cout << "x = y" << endl;return 0;
  • 嵌套使用时注意匹配关系
  • Switch语句:进入某个case 后不再受Switch语句控制,必须在每个case 中加break 调出Switch语句,否则将执行第一次进入的case 后的所有语句。

② 循环结构

  • while 循环:表达式为真时执行循环体
  while (表达式) 语句
  • do … while 循环:先执行一次再判断,为真时继续
  do (语句) while (表达式)
  • for 循环:处理循环次数已知的循环,可以代替上述两种循环解决问题
  for (初始语句; 表达式1; 表达式2) 语句  for (声明: 表达式) 语句
  • 嵌套循环:循环与循环、循环与选择均可以嵌套

  • 循环控制: breakcontinue

7. 自定义数据类型

  • 为已有类型另外命名:
 typedef 已有类型名 新类型名表 using 新类型名 = 已有类型名
  • 用户自定义类型——枚举
 enum 枚举类型名 {变量值列表} //不限定作用域的枚举类型(C)

整数值不能直接赋值给枚举变量,而枚举类型可以给整数变量赋值。

  • auto :通过初始值自动推断变量的类型

  • decltype :定义一个变量与某一表达式类型相同

阅读全文
0 0
原创粉丝点击