学习笔记:
一. Java
1. Java默认导入java.lang.*包。这里边有Thread,Math等常用的类,使用时不用写import java.lang.*;
2. Math.random()返回一个0到1之间的double数
3. double不能直接赋值给int,要进行强制类型转换。//但是,C++中可以!faint~~
4. int i = 1; if(1){...} 这条语句在Java中编译不通过,不允许int到boolean的强制类型转换。但在C++中就可以通过,允许转换...faint~~Again!
二. C,C++
#include "test.h"
#include
#include
using namespace std;
ostream& operator<<( ostream& os, const Test &t){
os< return os;
}
enum{size1,size2,size3,size4=8,size5,size6=12};
union Header{
int a;
short b[2];
struct{
char c;
};
};
struct Header1{
int a;
short b[2];
struct{
char c;
};
};
struct f{
int g;
short h;
char k;
};
struct A{
int a;
};
struct B{
char b;
char c;
char d;
char e;
};
void main(){
/**
*测试对象a的所占的字节数
*/
//Test a;
//int b = a.test();
//printf("a.test()==%d\n",b);
//printf("sizeof(a):%d",sizeof(a));//为什么是1呢?奇怪/////////////////////////////////////////////////
//getchar();
/**
*将int写如到某固定的内存地址
*/
/*
int *a;
a = (int*)65536;//10000H(十六进制的10000为65536
printf("%d\n",*a);
*a = 100;
printf("%d\n",*a);
getchar();
*/
//操作符重载
//Test t;
//cout< //getchar();
//运算符的优先级:
/*
int i = 1<<2+4; //结果证明,+优先级高于<<
printf("%d\n",i);
int *j;
j = &i;
printf("i=%d,j=%d\n",i,j);
*j++; //结果证明:++优先级比*高,相当于*(j++)。而且由于j是指向整形数的指针,*j++导致j加了4,而不是加1。如果char *j,则j++每次加1.
printf("i=%d,j=%d\n",i,j);
b = (i=6)?6:5;
*/
//enum用法:如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作。如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作
//printf("%d,%d,%d\n",size1,size3,size5);
//struct,union的大小
//printf("%d,%d,%d",sizeof(union Header),sizeof(struct Header1),sizeof(struct f));
//指针问题,在小端法机器上将四个char合起来编程一个整数
/*
struct A *a;
struct B b;
b.b = 1;
b.c = 2;
b.d = 3;
b.e = 4;
a = (A*)&b;
printf("0x%08x",a->a);
*/
//强制类型转换
int i = 1;
if(i){
printf("ok\n");//ok,但是Java中就不行,必须是boolean类型的.-_-!
}
double j = 1.1;
i = j;
printf("i=%d\n",i);//ok,但Java中也不行,double必须强制类型转换才能变成int。faint~~
}
阅读(699) | 评论(1) | 转发(0) |