程序员面试宝典
P28
#define product(x) (x*x)
int main(){
int i=3,j,k;
j=product(i++);
k=product(++i);
return 0;
}
j=9;
k=49;
char foo(void){
unsigned int a=6;
int b=-20;
char c;
(a+b>6)?(c=1):(c=0);
return c;
}
返回1
#include
<stdio.h>
#define
max(a,b) ((a)<(b)?(b):(a))
#define
abs(a) ((a)>0?(a):-(a))
int
foo(int x,int y){
int t=max(abs(x),abs(y));
int u = t+ t;
int v=u-1;
v=v*v+u;
if (x==-t)
v+=u+t-y;
else if(y==-t)
v+=3*u+x-t;
else if(y==t)
v+=t-x;
else
v+=y-t;
return v;
}
int
main(void)
{
int x,y;
for(y=-4;y<=4;y++){
for(x=-4;x<=4;x++)
printf("%5d",foo(x,y));
printf("/n");
}
while(scanf("%d%d",&x,&y)==2)
printf("%d/n",foo(x,y));
return 0;
}
P180
全局变量放在(数据段),函数内部变量static int ncount放在(数据段),函数内部变量char *p="AAA",p的位置在(堆栈),指向空间的位置(数据段)函数内变量char *p=new char;p的位置(堆),指向空间的位置(数据段)
P5
Java的缺省访问权限,当没使用任何访问指定词时,将发挥作用,这种权限通常被称为“包访问权限”类可以访问在同一个包中的其他类的成员,但在包之外,这些成员如同指定了private一样。
P12
Abstract类只能是基类,不能创建abstract对象
P29
所有数值类型都有正负号
P33
当变量作为类的成员使用时,Java才确保给定其默认值,以确保那些是基本类型的成员变量得到初始化(C++没有此功能)
P36
Class statictest{
Statici int i=47;
Static void incr(){i++;}
}
Statictest st1=new statictest();
Statictest st2=new statictest();
St1.i和st2.i和statictest.i指向同一存储空间
P37
Java.lang默认导入到每个java文件中
P38
如果创建程序,文件中必须存在某个类与该文件同名,且那个类包含一个名为main()的方法,形如:public static void main(string[] args)
P56
>>>无符号右移位操作符,无论正负都在高位插入0
P61
布尔型不允许进行任何类型的转换处理,“类”数据类型不允许进行类型转换,对象可以在其所属类型的类族之间进行类型转换,如橡树可以转型为树,反之亦然
P63
对基本数据类型执行算术运算或按位运算,只要类型比int小,那么在运算之前,这些值会自动转换成int
P86
Random输出范围是[0,1)
P100
可以用this在一个构造器中调用另一个构造器,但不能同时调用两个,且构造器调用必须置于最起始处,调用方法this(参数列表)其他方法中不能调用构造器