C++基础个人笔记

基本数据类型和运算符

数据类型

  • 1B:布尔型,字符型,无符号字符型
  • 2B:短整型,无符号短整型
  • 4B:整型(int,默认),无符号整型,长整型,无符号长整型,单精度实型(float)
  • 8B:双精度实型(double,默认),长双精度实型
  • float型变量只能接受7位有效数字,多的四舍五入,非去尾法;double型变量能接受15位有效数字;int型变量取整使用去尾法。
float a = 999999.711, b = 123456.789, c = 123.999;
cout<<a<<', '<<b<<', '<<c<<endl;
------
1e+006, 123457, 123
  • 枚举类型(enum)
    enum 枚举类型名 {变量值1, 变量值2, 列表};
    对枚举元素按常量处理,后期不能再对它们赋值。
    枚举元素具有缺省值,它们依次为:0,1,2,......
    也可以在声明时另行指定枚举元素的值
  • 转义字符
\n 换行    \t  横向跳格(水平制表)
\b 退格    \v 竖向跳格(垂直制表)
\\ 字符\   \r 回车,移到本行开头 
\' 单引号  \" 双引号
  • char c; c = "a"/"abc";是错的,char类型仅支持单字符常量,不支持字符串常量

运算符

  • / 两操作数为整数,相除结果取整
  • % 两操作数必须为整数
  • x/*=y+8等价于x=x*(y+8),而不是x=x*y+8
  • 逗号表达式,先求解左,再求解右,最终结果为最右表达式的值
  • sizeof (类型名)输出类型所占字节数
  • 优先级由高到低
括号
++,--,sizeof
*, /, %
+, -
<,>,<=,>=
==, !=
位运算
&&
||
?:
赋值运算
逗号运算
  • 强制类型转换:c=float(a)/float(b); 或 c= (float)a/(float)b;
  • 隐含转换从左至右:char,short,int,unsigned,long,unsigned long,float,double
  • 布尔型:参与运算,非零即真
  • 赋值运算要求左值与右值的类型相同,若类型不同,编译系统会自动将右值转换为左值的类型。
  • 闰年条件:((year%4==0&&year%100!=0)||(year%400==0));

基本语句和结构

条件判断

if语句

  1. if (表达式) 语句;
  2. if (表达式) 语句1; else 语句2;
  3. if (表达式1) 语句1;
    else if (表达式2) 语句2;
    else if (表达式3) 语句3;
    else 语句n;

switch语句

switch  (表达式:整型、字符型、枚举型)
   {  case    常量表达式 1:语句1
      case    常量表达式 2:语句2
      case    常量表达式 n:语句n
      default :  语句n+1
   }
/*
以case中的常量表达式值为入口标号,由此开始顺序执行。
因此,每个case分支最后应该加break语句。
case分支可包含多个语句,且不用{}。
若干分支执行内容相同可共用一组语句。
*/

循环结构

while语句

while (表达式) 语句;
先判断表达式的值,为true时,再执行语句。

do-while语句

do 语句
while (表达式)
先执行循环体语句,后判断条件。表达式为true时,继续执行循环体.

for语句

for (表达式1;表达式2;表达式3) 语句
表达式1:进入循环前先求解
表达式2:此表达式为true时执行后面的语句
表达式3:每次执行完表达式2的循环体还有语句后求解

break语句

使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。

continue语句

结束本次循环,接着判断是否执行下一次循环。不用于switch语句中。

函数

  • 返回值由 return 语句给出,例如:return 0
  • 无返回值的函数(void类型),不必写return语句
  • 调用前先声明函数原型:在调用函数中,或程序文件中所有函数之外,按如下形式说明:类型标识符 被调用函数名 (含类型说明的形参表);
  • rand
    函数原型:int rand(void);
    所需头文件:#include
    功能和返回值:求出并返回一个伪随机数
  • srand
    函数原型:void srand(unsigned int seed);
    参数:seed产生随机数的种子。
    所需头文件:#include
    功能:为使rand()产生一序列伪随机整数而设置起始点。使用1作为seed参数,可以重新初化rand()。
  • 参数传递 在函数被调用时才分配形参的存储单元。
    • 实参可以是常量、变量或表达式。
    • 实参类型必须与形参相符。
    • 传递时是传递参数值,即单向传递。
  • 引用做形参
  • 函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认形参值。默认形参值必须从右向左顺序声明,并且在默认形参值的右面不能有非默认形参值的参数。因为调用时实参取代形参是从左向右的顺序。
  • 函数重载:允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。
    • 重载函数的形参必须不同: 个数不同或类型不同。
    • 编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。编译器不以形参名和返回值来区分。
    • 不要将执行不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。
posted @ 2020-10-10 21:23  胡椒椒椒(弃用勿联系)  阅读(268)  评论(0编辑  收藏  举报