编程入门基础知识心得.doc
|编程入门基础知识总结基本知识程序 = 算法 + 数据结构,算法是对操作的描述,数据结构是对数据的描述。伪代码: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=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+; 故 arr0 = 129; ptr 指向 arr1printf 函数从右向左压栈,运算顺序:+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|setprecision(n) 设置精度为 n,十进制输出时,n 代表有效数字位数包括整数和小数;fixed(固定小数位数)和 scientific(指数)形式输出时,n 指小数位数(不包括整数部分)double a = 123.4567890123456cout 02.using namespace std; 03.template / template 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 'iostream' 区别<> 在系统目录寻找,找不到报错' ' 在当前目录寻找,找不到报错 字符数组|(1) char str = “i am happy“;数组长度为 11,而非 10,因为后面有一个'0'(2) char str = 'i','a','m','h','y'数组长度为 5,系统不会自动为其在后面加 '0'因此,(1),(2)是不同的输出字符数组:cout字符串变量中不会存放'0',只存放字符串本身,故 string str =“hello“; 的长度为 5,要注意。字符串变量存储的实际是字符串的指针,4 个字节,sizeof(string) = 4;string name=“i“,“am“,“happy“; sizeof(name) = 3*4 = 12; 变量与指针:int *p = /int 型指针变量,定义时的*只是表示指针类型p 是指针变量,其值是变量 i 的地址,*p 则是存储单元,*int *p;p = /与下面等价,都指向数组第一个元素,因为数组名本身就是表示数组的地址|p = a;*p+ 相当于*(p+),先得到*p 的值,p 再+移到下一个元素(*p)+则是使 *p 的值+1二维数组的指针表示: *(*(p+i)+j) 表示 ai,j*int (*p)n p 为指向含 n 个元素的数组的指针int *pn 定义指针数组 P函数指针 指向函数的指针,主要用作形参int max(int,int);int (*p)(int,int);p = max; 赋值(地址)p(1,2) /调用引用int a = 10;int b 是对 a 的引用引用传递,引用型变量作为函数形参|cpp view plain copy 01./值会改变 02.main 03. int i=5,j=6; 04. swap(i,j) 05. 06.void swap(int 09. temp = a; 10. a= b; 11. b=temp; 12. 传递变量地址:形参是指针变量,实参是变量地址,这种虚实结合的方法仍然是“值传递”方式,只是实参的值是变量地址而已。cpp view plain copy 01./值会改变 02.main() 03. 04. int i=5,j=6; 05. swap( 10. temp = *p1; 11. *p1 = *p2; 12. *p2 = temp; 13. 结构体变量 struct