笔试小问题整理

来源:互联网 发布:hd电视直播软件 编辑:程序博客网 时间:2024/06/17 13:43
  • 指针和引用

C++中的引用需要在定义时初始化,是作为另一变量的别名,经常通过引用传递函数参数达到改变实参的效果。初始化后就不可改变。

另外,函数传参数不论是地址还是形式参数,都是将其看做值,地址也是值,因为c中只有值的概念,做一份参数的拷贝传入函数中,
例:所谓的通过指针的传递交换值的swap函数,void swap(int *a,int *b)也是拷贝了两份地址值。通过地址从而改变了指针指向元素的值。

#include<iostream>using namespace std;void test(int *p){  int a=1;  p=&a;  cout<<p<<" "<<*p<<endl;}int main(void){    int *p=NULL;    test(p);    if(p==NULL)    cout<<"指针p为NULL"<<endl;    system("pause");    return 0;}

上述代码试图通过函数改变指针指向,然而传入的地址值,对其做份拷贝,也叫p,即地址值的拷贝。
main函数中的p何test函数中使用的p不是同一个变量,存储2个变量p的单元也不相同(只是2个p指向同一个存储单元),那么在test函数中对p进行修改,并不会影响到main函数中的p的值。
如果要想达到也同时修改的目的的话,就得使用引用了。详见:
指针和引用的区别

Pascal语言中有“值形参”和“变量形参”的概念,c中只有值形参,地址也是值,而c++通过引用补充了这个不足。引用详解

  • 常量与变量以及变量的命名规则

习惯上符号常量名都用大写形式表示,而变量名都用小写形式表示。
常量其值不可改变,符号常量名通常用大写。有两种方法定义:
1.使用宏定义:#define PRICE 30
2.用const关键字:const int MONTHS = 12;

变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。

-指针类型变量的操作
两个指针变量不之间能做相加操作,因为得到的数字无意义,也可能出现内存越界的情况。

  • float类型变量之间的比较。
    float a=3.0,b=6.0;
    比较a与b是否相等,的不能单纯地使用==符号
    float型在计算机中存储中只能取近似值,有精度的限制,float的精度误差在1e-6;double精度误差在1e-15

    所以应该转用,>=,<,<=
    用宏定义精度

    #define Precision 0.000001    if(fabs(a-b)<Precision)   //if(fabs(a-b)<1e-6)

判断是否为0:if(fabs(f) <= 1e-6)。

  • c语言运算符优先级表格
    很多时候表达式的值很重要,当初学C++太浮躁,没关注这一块,很多问题就是求表达式的值。

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

 

()

圆括号

(表达式)/函数名(形参表)

 

.

成员选择(对象)

对象.成员名

 

->

成员选择(指针)

对象指针->成员名

 

2

-

负号运算符

-表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式

 

++

自增运算符

++变量名/变量名++

单目运算符

自减运算符

–变量名/变量名–

单目运算符

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

长度运算符

sizeof(表达式)

 

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

双目运算符

%

余数(取模)

整型表达式/整型表达式

双目运算符

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

双目运算符

5

<<

左移

变量<<表达式

左到右

双目运算符

>>

右移

变量>>表达式

双目运算符

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

双目运算符

<

小于

表达式<表达式

双目运算符

<=

小于等于

表达式<=表达式

双目运算符

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

双目运算符

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

表达式1? 表达式2: 表达式3

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

 

/=

除后赋值

变量/=表达式

 

*=

乘后赋值

变量*=表达式

 

%=

取模后赋值

变量%=表达式

 

+=

加后赋值

变量+=表达式

 

-=

减后赋值

变量-=表达式

 

<<=

左移后赋值

变量<<=表达式

 

>>=

右移后赋值

变量>>=表达式

 

&=

按位与后赋值

变量&=表达式

 

^=

按位异或后赋值

变量^=表达式

 

|=

按位或后赋值

变量|=表达式

 

15

,

逗号运算符

表达式,表达式,…

左到右

从左向右顺序运算

注:同一优先级的运算符,运算次序由结合方向所决定。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 上海租房人放2个麻将台怎么办 南宁公租房住满5年后怎么办 合伙买房时如果出售意见不合怎么办 老旧小区改造下水一楼不同意怎么办 老旧小区下水改造没改怎么办 替公司租房子中介不退押金怎么办 想在昆山找合租房的该怎么办 链家二手房价钱买贵了怎么办 拿私人房产证抵押借钱不还怎么办 在借贷宝里借钱不还怎么办 出租屋的大门感应钥匙弄丢了怎么办 法院拍卖的房子房主不配合怎么办 租的房子如果房主卖了怎么办 房东把门锁换了里面的东西怎么办 房租没到期房东把门锁换了怎么办 租了三年店面房东违反了合同怎么办 学生登录教务系统的密码忘记怎么办 铜陵无牌助力车被交警查到怎么办 福州超标电动车被交警抓到怎么办 单位自管公租房承租人去世怎么办 取得房产证后贷款批不下来怎么办 租店面遇到难搞的房东怎么办 在拆违通知书上签字了该怎么办 单位没交公职金的退休后怎么办 公租房合同到期后没有续签怎么办 租房合同没到期不想租了怎么办 租的房子是人家公租房怎么办 五险合一软件口令忘记了怎么办 计生办把婚育状况登记错了怎么办? 医院发票法院要保险也要怎么办 上海社保里生育险暂停参保怎么办? 痔疮手术后大姨妈来了怎么办 微创痔疮术后第五天涨出血怎么办? 肚子胀疼大便拉不出来怎么办 得痔疮了该怎么办昆明东大治 下体痒还没去检查就来月经了怎么办 直肠造口手术后造口肠子突出怎么办 痔疮pph手术瘢痕两年了该怎么办 肛瘘挂线术后六天腹泻了怎么办 刚满月的孩子鼻子不通气怎么办 齐鲁医院挂的号晚了怎么办