面题37-58

37、C+中有哪几种基本数据类型 3
	C+中数据类型分两种,简单类型和结构类型。简单类型包括整型,字符、浮点、指针、枚举类型等。结构类型包括数组、字符串、记录和文件等。
	P:C+基础数据类型为分整型、浮点、void型。
 
38、整型有哪几种形式?各形式有什么区别?3
	表示整数布尔值字符(char)的算术类型统称为整型。在32位系统中,int和long通常是相等的。
 
39、C+中有哪些常量2
	整型常量、浮点型常、字符型常量、转义字符常量、字符串常量、地址常量等6种
 
40、常量和变量有哪些区别 2
	b、常量定义后不可以修改,所以常量在定义时必须初始化	c、常量地址不可以赋给非常量指针    d、常量编译时可以以立即数形式编译进指令,比使用内存的变量效率高  e、常量没地址属性,而变量有。故常量只能做右值
 
41、操作符有哪些分类 3
按功能分:算术、关系、逻辑、位、赋值、自增和自减、箭头、条件、sizeof、逗号操作符等10类。
按操作数分:一元、二元、三元、
 
42、操作符优先及对运算结果有什么影响 4
所有优先级中,有三个是从右向左结合的,分别是单目(一元)、条件赋值,其他操作符从左至右结合。
 
43、逻辑操作与其他操作的关系 2
逻辑操作分为逻辑或、逻辑与、逻辑非3种。逻辑与和逻辑或在使用时总是先计算左操作数再计算右操作数。只有左操作数无法确定结果时才会去求解右操作数,这种方式即“短路求值 
44、前自增减和后自增减的区别4
前自增减返回左值,即对象本身。后自增返回的是右值。
int i=0,j;
j=++i;  //j=1,i=1
j=i++;  //j=1;i=2
前自增减操作优先级大于赋值运算符(=),而后自增减操作优先级小于赋值运算符           
 
46、什么是左值和右值3
左值可以出现在赋值语句的左边或右边,即左传可以当右值使用。右值只能在赋值右边(不能被赋值)。
实际上,左值是一个存储地址。而右值是一个具体的数据或数值,即该内存中存储的数据内容。
 
48、变量有哪几种初始化方式5
C+支持两种变量的初始化形式:复制初始化直接初始化
int a(100);  //直接初始化   更加灵活且效率更高
int b=200;  //复制初始化  擦除对象当前值并用新值代替

49、变量默认初始化有什么规则
内置类型变量是否自动初始化取决于变量的位置。函数体外定义的变量初始化为0。函数体内定义的内置类型变量不进行自动初始化。如果类没有提供初始化,通过定义一个默认的构造函数来实现。(建议每个内置类型的对象都要初始化,虽然不必要但会让程序更安全)
 
50、什么是变量的声明和定义 5
声明用于向程序表明变量的类型和名称定义也是一种声明。可以用extern声明变量名但不定义它。
externint a;  //声明但未定义
intb;   //定义b
extern声明不是定义,也不会分配存储空间,只是说明变量定义在程序的其他地方。但含有初始化的extern声明当做定义。程序中 变量可声明多次,但只能定义一次
定义和声明有相同的时候,但声明主要是表明变量的类型的名称,定义主要目的是为变量分配存储空间
 
51、C+中用哪几种作用域5
作用域是程序的一段区域,用于区别变量名的不作用范围。有全局作用域局部作用域语句作用域
 
53、变量有哪几种存储类型2
存储类型根据变量的生存期来划分变量。主要分为四种
1、自动类型变量(auto)
只能是局部的,属于动态存储类型
2、静态类型变量(static)
程序运行过程中始终存在
3、寄存器类型变量(register)
动态存储类型,编译器不为寄存器类型变量分配内存,而是直接使用cpu的寄存器。
4、外部类型变量(extern)
必须是全局的。当一个程序多文件组成,一个源文件要引用定义在另一个源文件中的全局变量,就必须在引用前对所引用的变量进行外部声明。
 
54、什么是引用3
引用是C+对象的另一个名字。C+不能定义引用类型的引用,但可以定义任何其他类型的引用。
int a=100;
int& ref=a;  //ref引用a
int& ref=b;  //F 引用必须初始化
int& ref=10; //错误,初始化必须为一个对象


 
55、如何使用const引用和非const引用2
const引用可以读取但不可修改引用对象。非const引用可以修改引用和被引用的对象的值
const int a=100;
const int &ref=a;  //T 引用和被引用对象都是const类型
int& ref2=a;  //F  引用是非const

56、C和C+的区别 2
最显著的是C是结构化的编程语言,面向过程。C+面向对象,C+是C语言的一个超集。
 
58、变量命名有什么规则
由字母、数字或下划线组成。且必须以字母或下划线开始。【【【变量名不能包含两个连续的下划线,也不能下划线开头后紧跟一个大写字母。有些变量(在函数外定义的变量名)不能以下划线开头。】】】这个在vc vs中是编译通过的,不知道面试宝典上说的是什么编译器,不过最好是避免使用下划线开始变量名或函数名,因为一般这么定义的标识符是通常是保留    供编译程序或标准库函数使用的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值