当前位置:文档之家› 编程入门基础知识总结

编程入门基础知识总结

编程入门基础知识总结https://wenku.baidu./task/browse/javascript:void(0);基本知识程序= 算法+ 数据结构,算法是对操作的描述,数据结构是对数据的描述。

伪代码:pseudo code程序一般包括:(1)预处理命令:#include等(2)全局声明部分(3)函数:函数首部(声明)、函数体(局部声明+执行部分)程序执行过程源程序-->编译成目标程序obj-->连接目标程序成可执行文件类:数据成员+成员函数命名空间实际上就是一个由程序设计者命名的内存区域。

程序员可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开,解决名字冲突,防止全局命名空间污染。

C++库的所有标识符(标准头文件中函数、类、对象、类模版)都是在std命名空间定义的A 的ASCII码值65 a 的971.数据类型•基本类型:整型、浮点型、字符型、布尔型•构造类型:枚举、数组、结构体类型(struct)、公用体(union)、类类型•指针类型•引用类型•空类型:nullint 4 unsigned int 4 short int 2 unsigned short int 2 long int 4 unsigned long int 4char 1 uchar 1float 4 double 8 long double 8无符号:不用保存符号位,故比有符号多了一位有符号:数值用补码存放(无论正负),最高位为符号位VC中,long double与double字节数相同,故long double是无用的GCC中,long double则有12个字节无负值的量可以定义为unsigned int,如年龄、学号等,以增大存储范围。

short int,long int,unsigned int这些类型后面的int可以省略整型表示:十进制,后面加L 或l八进制,前面加0十六进制,前面加0x浮点数表示:默认为双精度型double后面加f 或 F 则为单精度float后面加l 或L 则为长精度型long double指数形式数符数字部分指数部分a = 3.14e2 a=0.314e4 a=31.4e1 a=3140e-1浮点数,不管是用小数形式还是指数形式表示,在内存中都是以指数形式表示的,且数字部分必须小于1如3.14159 在内存中表示为+ .314159 3 ,数字部分为.314159,是小于1的字符型字符型在内存中存储的是ASCII码,也是整型,故而可以把字符型赋给整型字符串后面,编译系统会加个'\0'作为结束符符号常量用符号代表一个常量,如#define PI 3.14159在编译时,系统会把符号常量替换成具体的值2.变量变量:程序运行期间,值可变的量变量名:代表内存中的一个存储单元,在编译连接时由系统给每一个变量分配一个地址标识符:标识实体名字的有效字符序列,字母、数字、下划线常变量:定义变量时加上const,运行期间值不可变,也即只读变量区别#define 定义的符号常量与const定义的常变量符号常量只是用一个符号代表一个常量,在编译时把所有符号常量替换为指定的值,它没有类型,在内存中不存在以符号常量命名的存储单元常变量具有变量的特征,具有类型,在内存中有以它命名的存储单元,与一般变量不同的是,常变量代表的存储单元值不可变。

强定义的好处1.保证变量名使用的正确,不正确会在编译时报错2.每个变量指定为一确定类型,在编译时就能为其分配存储单元3.编译时即可检查变量进行的运算是否合法。

3. 运算符二进制位运算& 二进制按位与| 二进制按位或^ 按位异或<< 左移位>> 右移位++ -- 自加自减运算符++i 使用i之前,i先自加i++ 使用i之后,i再自加++ -- 结合方向为自右向左例:!x++ 先取非,再++(i++)+6 先i+6,后i++,不管有无括号,都是先运算,再自加(++i)+6 先自加,再加6-i++ :i左面是符号运算符,右面是自加运算符,设i等于3,运算过程相当于-(i++),即-i=-3 -3+1=-2a = -i++:a结果为-3,先赋值,再自加;5-i++ =?答案2 ?待测试i=1,j=2,则a = i+++j ?答案:3 因为相当于a=(i++)+j;i=1,j=2,则a=i+(++j)?答案:4赋值运算符=的优先级小于++ -- 运算符示例:int arr[] = {6,7,8,9,10};sint *ptr = arr;*(ptr++) += 123;printf("%d,%d",*ptr,*(++ptr));解:*(ptr++) += 123; 相当于*ptr +=123; *ptr++; 故arr[0] = 129; ptr指向arr[1]printf函数从右向左压栈,运算顺序:++ptr; 输出结果:8 8cout也是自右向左压栈。

逗号运算符又称顺序求值运算符a = 3*4,a*5 则a=? 答案12 ?注意逗号运算符优先级最低。

注:整个逗号表达式的值为60(a=3*4=12,12*5 =60)x=(a=3,6*3) 则x=18x=a=3,6*a 则x=33.内存存储浮点数在内存里和整数存储方式不同float a =1.0f;cout<<(int)a==(int&a);(int&a) 相当于把该浮点数地址开始的sizeof(int)个字节当成int型数据输出,其值并不为1(int)a显示转换等于14.类型转换转换本质:按存储单元中的存储形式直接传送(1)浮点型赋给整型,舍弃小数部分(2)double型赋给float,防止溢出错误(3)int,short,long赋给char,原封不动取低八位(4)signed赋给unsigned,符号位照搬。

负数以补码形式存放,-1赋给unsigned int,结果为65536.整数不会变,除非两个长度不同(int,long)发生截断5.C++输入输出C++输入输出包含三个方面的内容(1)对系统指定的标准设备的输入输出。

即从键盘输入、输出到显示器屏幕,称标准输入输出,简称标准I/O(2)以外出磁盘文件为对象进行输入输出,称文件I/O(3)对内存中指定空间进行输入输出,通常指定一个字符数组作为存储空间,称字符串输入输出,简称串I/O在C++中,输入输出流被定义为类。

C++的I/O库中的类称为流类,用流类定义的对象称流对象。

C++中输入输出是调用输入输出流库中的流对象cin、cout实现的,即I/O不是C++本身定义的,而是编译系统的I/O库中定义的。

I/O控制符#include <iomanip>setprecision(n) 设置精度为n,十进制输出时,n代表有效数字位数包括整数和小数;fixed(固定小数位数)和scientific(指数)形式输出时,n指小数位数(不包括整数部分)double a = 123.56cout << a; //十进制输出,输出123.456 默认精度为6cout<<setprecision(9)<<a; //十进制,输出123.456789 精度为9cout<<setprecision(6); //恢复默认精度cout<<setioflags(iOS::fixed)<<a; //固定位数,123.456789 ,此时精度表示小数位数,精度为默认的66.getchar() 和putchar()cout<<getchar(); //读入的实际是ASCII码,故输出为字符ASCII码,97,而非读入的字符cout<<(c=getchar()); //输出为字符while((c=getchar())!='\n'){} //循环读入字符的控制7.函数与模版函数原型:不同具体形参的函数声明如:float add(float,float)主要作用:根据函数原型,在程序编译阶段对调用函数的合法性进行全面检查。

函数重载:同一函数名定义的多个函数,这些函数的参数个数,参数类型,参数顺序至少有一项不同,一个函数不能既是重载函数,又是带默认参数的函数。

函数模版:适用于函数个数相同,函数体相同,而只有类型不同的情况[cpp] view plain copy01.#include <iostream>ing namespace std;03.template <typename T> // template <class T>04.T max(T a, T b, T c)05.{06. if(b>a) a = b;07. if(c>a) a = c;08. return a;09.}10.int main()11.{12. int a=1,b=2,c=3;13. cout<<T(a,b,c);14. float d=1.1,e=2.2,f=3.3;15. cout<< T(d,e,f);16.}变量作用域:变量有效范围,有四种:文件作用域file scope 函数作用域function scope块作用域block scope 函数原型作用域function prototype scope递归函数:函数体中,直接或间接调用函数本身的函数。

变量的存储类别:外部、局部(相对于函数而言)全局变量(也即外部变量)静态局部变量(static)自动变量(不加static的局部变量)寄存器变量(register)存放在CPU中,而非内存中,这样在使用时就省去了从内存中载入寄存器的过程。

但只是建议性的,优化编译系统自动识别使用频繁的变量,从而自动将变量放入寄存器中。

extern声明的外部变量即提前引用申明,表示该变量是将在下面定义的全局变量或在其它文件中定义(本文件中不用extern,引用该变量的外部文件用extern进行声明)static声明的静态外部变量只能被本文件使用,而不能被外部文件使用的全局变量,这样不同文件中的全局变量不会相互干扰,为程序模块化、通用化提供方便。

注:全局变量也是静态存储的。

内部函数与外部函数内部函数:static 声明,文件内使用外部函数:另一个文件里extern声明,表示是其它文件的函数,extern可以省略宏定义#define PI 3.14 定义符号常量#define Area(a,b) a*b //定义函数功能,下面当作函数来用。

相关主题