编程入门基础知识总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编程入门基础知识总结

基本知识

程序= 算法+ 数据结构,算法是对操作的描述,数据结构是对数据的描述。

伪代码:pseudo code

程序一般包括:

(1)预处理命令:#include等

(2)全局声明部分

(3)函数:函数首部(声明)、函数体(局部声明+执行部分)

程序执行过程

源程序-->编译成目标程序obj-->连接目标程序成可执行文件

类:数据成员+成员函数

命名空间

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

C++库的所有标识符(标准头文件中函数、类、对象、类模版)都是在std命名空间定义的

A 的ASCII码值65 a 的97

1.数据类型

•基本类型:整型、浮点型、字符型、布尔型

•构造类型:枚举、数组、结构体类型(struct)、公用体(union)、类类型

•指针类型

•引用类型

•空类型:null

int 4 unsigned int 4 short int 2 unsigned short int 2 long int 4 unsigned long int 4

char 1 uchar 1

float 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=-2

a = -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 8

cout也是自右向左压栈。

逗号运算符

又称顺序求值运算符

a = 3*4,a*5 则a=? 答案12 ?注意逗号运算符优先级最低。注:整个逗号表达式的值为60(a=3*4=12,12*5 =60)

x=(a=3,6*3) 则x=18

x=a=3,6*a 则x=3

3.内存存储

浮点数在内存里和整数存储方式不同

float a =1.0f;

cout<<(int)a==(int&a);

相关文档
最新文档