一。基本数据类型知识点
1.C/c++中的基本数据类型是?
:整型,浮点型,字符型,无值型
2.基本数据类型又是怎样细分的?
:整型包括:有符号长整型(signed long int ),无符号长整型(unsigned long int ),有符号短整型,无符号短整型。
3.类型修饰符signed,short,long用法:
(1)类型修饰符signed和unsigned用于修饰字符型和整形。
在默认情况下,声明一个数时,默认为有符号型,即signed
(2)类型修饰符short和long用于修饰字符型和整形。
(3)当用signed和unsigned、short和long修饰int整形时,int可省略。如short i = 2;
(4)其中bool和wchar_t是C++特有的。
4.怎样声明长整型和float型?
默认情况下,编译器将一个浮点数作为double处理,若要强制以float处理,则在末尾加上“f”或者“F”,如 float i = 3.14f
声明一个长整型时候,要在末尾加上l或者L,如long i = 312L;
5.浮点型与科学技术法:
e或者E表示指数,大小均可
4.常量知识点:
什么时候会用到常量?
:如果程序中频繁用到一个数,反复输入这个数是很烦人的,这时候可以声明一个常量来表示它。且如果需要改变此值得话,只需修改程序中的一处。
如:const double PI = 3.14;
1)变量的声明,初始化知识点
注意:无论什么情况,最好都要将变量的声明和初始化在一条语句中完成。
1.必须同时进行变量的声明和初始化的有:
1)局部变量(函数内部的变量,否则其值是不可预知的)
二。运算符知识点
1.运算符分为
算数运算符:加+减-乘*除/模%,其中模运算%只适用于整数。自增运算符,自减运算符
关系运算符:>,<,>= ,<= ,==,!=(按运算符优先级)
逻辑运算符:!,&&,||----结果是true或者false
位运算符:位运算符是专门用来进行二进制运算的,分为逻辑位运算符和移位运算符(<<.>>)
赋值运算符: =,+=,-=,*=,/=,%=,,&=(按位与赋值),|=(按位或赋值),^=(按位异或赋值),<<=左移位赋值,>>=右移位赋值
其他运算符:三木运算符(?:,(逗号运算符),sizeof运算符,类型转换运算符static_cast<目的类型>(原数据))
位运算符:
1)逻辑位运算符(作用于算数运算符一样,用来运算):~(按位求反),&(按位与),|(按位或),^(按位异或)
与运算(and &):and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。
按位或(or |):or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。
异或运算(^):xor运算通常用于对二进制的特定一位进行取反操作,因为异或可以这样定义:0和1异或0都不变,异或1则取反。
2)移位运算符:移位运算符的值也是算数表达式。
左移:补零
右移:补符号位
三。关于指针的知识点
0.一个指针变量存储的是什么信息?
:指针存储的信息是对象在内存中的地址。通过指针可以间接访问对象
1.关于指针可以进行的运算有哪些?
:
1)赋值运算。如int a, *pa = &a,*q;p = q;//指针的赋值运算
2)指针可以加1运算或者减1运算
3)指针在一定条件下,可以相减(数组情况下),指向同一个数组的不同元素的两个指针可以相减,其差便是两个指针之间相隔的元素个数。
例如在一个字符串中,让一个指向该串的首元素,让另一个指向字符串的结束符,两个指针相减,其差便是字符串的长度
4)在一定条件下,指针可以互相比较。如指向同一个数组元素的两个指针可以比较,当两个指针相等时,说明指向数组的同一个元素。
2。最常用的指针类型是什么类型的指针?其作用是什么:
最常用的指针类型是char *,因为在C++中,所有的字符串操作都可以通过字符指针完成。
3.指针和数组的关系
:数组元素可用下标表示,但最好还是用指针表示。
4.数组名和数组指针的关系?
:数组名是常量指针,数组指针是变量指针。
如:int a[5],*p = a;
表达式p+1,p+2是合法的,而a+1,a+2是违法的。因为数组指针是变量指针,而数组名是常量指针
5.二维数组的指针表示:
6.引用变量
:引用是令一个变量的别名,对引用的改变实际是对目标的改变。
声明形式,int a = 3;
int &b = a;
7.引用与指针的区别?
:指针通过地址间接访问变量,而引用是通过别名直接访问变量。
引用必须初始化,且一旦初始化之后,就不能再作为其他变量的别名。
引用的用途是用来作为函数参数。
4.在int a[5] = {1,3,5};中,a[1]=
A.1 B.0 C.3 D.5
:C 数组的起始地址是0
5.字符数组初始化语句中,正确的是
A.char s1[] = "abcd"
B.char s2[3]="xyz" //字符数组的结尾符号必须有一个\0表示结束
C.char s3[][] ={a,b,c}
D.char s4[2][3] = {"xyz","mnp"}
:A
6.在int a = 3,*p = &a中,*p的值是()
A.变量a的地址值 B.无意义 C.变量p的地址值 D.3
:D---指针代表的就是地址值,指针的解引用代表地址存储的单元值
7.对于int *pa[5];正确的描述是:
A.pa是指向一个数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第五个元素的指针,改元素是int型变量
C.pa[5]表示某个数组的第五个元素的值
D.pa是一个具有五个元素的指针数组,每个元素是一个指针。
:D,声明什么么,说明这个数是一个包含什么类型的数。即声明int *p[5]证明声明的就是一个指针型数组,保存的全是指针,如int * p = &a;声明的是指针
8.关于指针的运算,叙述错误的是()