C++基础知识(一)

来源:互联网 发布:c语言四舍五入函数 编辑:程序博客网 时间:2024/06/09 16:11

总结了一些关于C++的基础知识(随时补充):

1、C++源文件以“.cpp”为扩展名,头文件以“.h”为扩展名。


2、C++支持两种注释方式://(单行)和/* ... */(多行)。


3、所有的C++关键字都是小写的,例如true、false,而TRUE、FALSE等都不是C++关键字,而是Microsoft新定义的数据类型。


4、C++中的基本内置类型:

    (1)整数类型:short、int、long;

    (2)浮点类型:float、double;

    (3)字符类型:char、wchar_t(双字节字符);

    (4)布尔类型:bool

    (5)void类型:没有对应的值,仅用在有限的一些情况下,通常用作无返回值函数的返回类型,或定义无确切类型的指针。


5、转义字符:

转义字符含义  \'单引号  \"双引号  \\反斜杠  \b退格符  \r回车符  \n换行符  \t制表符







6、注:由于C++标准的推出晚于Visual C++6.0,因此该编译器不支持wchar_t关键字,如果想使用双字节字符,则需要包含 tchar.h。


7、自定义数据类型:数组、结构体、枚举、联合、指针、类(class)、引用。


8、自动类型转换:char→short→int→float→double


9、强制类型转换(两种):

    (1)继承于C语言的,数据前面加“(type)”;

    (2)使用static_cast运算符(标准的C++类型转换有4种:static_cast、dynamic_cast、reinterpret_cast和const_cast)。


10、sizeof运算符:作用是返回一个变量所占内存的长度,长度的单位是字节。


11、switch-case语句:

switch(expression){case value1:    statement1;    break;case value2:    statement2;    break;......  // 其余case块case valueN:    statementN;    break;[default:defaultstatement;]}

    (1)switch语句将表达式返回的值与每个case子句中的值进行比较,如果遇到匹配的值,则执行case后面的语句块;

    (2)表达式expression的返回值类型必须是int、byte、char、short类型之一;

    (3)case子句中的值valueN必须是常量,并且是int、byte、char、short类型之一,而且所有case子句中的值应是不同的;

    (4)defaul子句是可选的;


12、while语句:

while (condition){    statement;}
语法解释:

判断condition的结果,若为true,则执行statement语句;否则,跳出循环。


13、do-while语句:

do{    statement;} while (condition); // 注意结尾分号
语法解释:

先执行statement语句,再判断condition,若为true,继续执行statement;否则,跳出循环。

(也就是说:至少执行一次statement)


14、break语句的作用:

    (1)在switch语句中,用于终止case语句序列,跳出switch语句;

    (2)在循环结构中,用于终止循环语句序列,跳出循环结构;

    (3)与标签语句配合使用,可以从内层循环或者内层程序块中退出。


15、continue语句的作用:用在for、while、do-while等循环体中,通常与if条件语句一起使用,用来加速循环。即满足条件时,跳过本次循环剩余的语句(结束本次循环),直接检测判定条件以决定是否进行下一次循环。


16、数组的下标索引是从0开始的。数组的大小(所占的字节数)可以通过sizeof来获取。


17、数组被定义以后,各个元素的值是可以改变的,但是数组的大小(容量)是不能改变的。而且,访问数组中的元素时,下标索引不能越界,范围必须是0~(length-1)的整数。


18、一维数组初始化:

    (1) int k[4] = {1,2,3,4}; 即k[0]=1; k[1]=2; k[2]=3; k[3]=4;

    (2)int array[4] = {0}; 即array[0]=0; array[1]=0; array[2]=0; array[3]=0; (注:数组初始化值的个数小于元素个数时,剩余的元素自动初始化为0,也就是这里的array[1]、array[2]和array[3])

    (3)int a[] = {1,2,3,4}; 可以不指定元素个数,编译器会根据列出的初始化值的个数来确定数组的元素个数。


19、二维数组的初始化:eg:int array[3][2] = {{1,2}, {3,4}, {5,6}}; 等价于 int array[][2] = {{1,2}, {3,4}, {5,6}};


20、函数的声明与定义:

    (1)一般将函数的声明放到头文件中,当使用函数时需要包含该头文件;

    (2)函数声明没有函数体,以分号结尾,函数定义有函数体:{……};

    (3)函数声明不占内存,函数定义才导致编译器给函数分配内存;

    (4)在同一个源文件中,相同的函数声明可以出现多次,相同的函数定义只能出现一次;

    

21、函数重载,也称重载函数(overloaded function):是指同一个函数名,在相同的域内(例如同一个类或同一个程序的全局区内)被多次定义,但是参数表不同,而且一般函数的实现内容不同(即函数定义不同)。


22、指针,也称作指针变量,用于指向变量或对象。具体的来说,指针保存的是另一个变量(对象)的地址。指针在实际代码中的主要用途有两个:一是作为函数参数传递数据,二是操作动态内存。


23、C++语言使用“ * ”符号把一个标识符声明为指针。定义指针变量时最好初始化,否则在使用时很容易引起错误。经常将指针初始化为0,这样的指针(值为0)的指针称为安全指针。


24、指针的赋值:

    (1)通过初始化指向某个变量:int a=0; int * p = &a;

    (2)通过赋值操作指向新的变量:int b=1;p = &b;


25、指针作为函数参数的作用:

    (1)传递引用

    (2)传递大内存


26、函数参数传递的形式:

    (1)值传递:函数运行时,形参不改变实参的值;

    (2)引用传递:函数运行时,形参改变实参的值。


27、使用指针作为函数参数传递大内存,主要有三种形式:指向结构体、指向数组、指向类对象。


28、示例:

void Function (int array[10]);
上述函数,显然是将某个长度为10的整型数组传递到函数Function中,但是根据C++的标准规定,数组的元素个数10是传递不到Function函数的内部的。因为,在函数内部array将被视为一个指针,而不是数组。

改进如下:

void Function(int *array, int arraySize);





0 0
原创粉丝点击