您的位置:首页 > 编程语言 > C语言/C++

C语言和Java的区别和相同点

2016-08-31 19:36 225 查看
0:标识符:java 中可以有美元符号,c不可以

1:true 和false 不是c语言的关键字

2: c语言的类型列表:
0:基本类型(6种):数值类型(整形(short,int,long(没有byte)),浮点型(float,double)),字符型 char,(没有boolean型)
c语言允许用数值来标识逻辑值,用0标识false,用非0标识true;Java中是不允许的,java 直接使用boolean 的true和false
值来标识
1:构造类型(4种):数组,结构体struct,公用体union,枚举类型enum,
2:指针类型
3:空类型void

3:在c 语言里面short,long,signed,unsigned 其实是整形的修饰类型,

例如short int标识短整形,一般写为short

long int 标识长整形,一般写为long

4:c语言里面

int result = !(a>b);//a>b为假所以等于0,!0就等于1 

//if(表达式,关系表达式,逻辑表达式,常量,变量)语句:
//表达式为真(非0)执行语句,否则不执行
//java  里面只能是关系表达式和boolean 类型的变量

5:函数的调用的参数的传递

6:返回值的规定:(前面的两条和java 不一样,java 是可以返回数组的,没有忽略返回值一说)

a:函数不能返回数组

b:如果忽略返回值,假定返回int

c:void 标识没有返回值

7:简单的来说C语言的数组就是一旦定义不可修改,定义的时候长度就固定了。
PS:java 里面的定义是这样的,不可以定义的时候是不可以制定长度的,必须是在分配的时候才可以的。

//数组的初始化:JAVA 是不支持的,因为不可以在声明的时候制定长度
int a[5]={1,2,3,4,5};
//下面的这种定义也是可以,部分初始化,JAVA 是不支持的,因为java 是在初始化的时候才知道长度的
int b[5]={1,2,3};
//如果为全部元素初始化,可以省略长度,其实这种就是Java 的用法,java 也是可以这么声明和初始化的int[] args,int args[]
int x[]={1,2,3};

8://C语言计算一个数组的字节长度可以直接通过sizeof,如果是数组的长度呢,需要用字节长度除以该数组的类型字节长度
//java里面只要一个b.length的属性就可以了。
int sizeb = sizeof(b);
printf("b数组字节长度=%d\n",sizeb);

printf("size of int =%ld\n",sizeof(int));

printf("b数组的长度为%d\n",sizeb/sizeof(int));

9:网购的地址,通过这个地址找到你,

程序的地址,通过地址来操作变量,这个地址有一个叫法叫做指针,java 里面把地址就叫做引用

指针是有类型的,就是指针类型,JAVA中的地址叫做引用,类型叫做引用类型

10:相同点:

c语言是至传递,在函数调用时候不会改变外部变量的值,这有时候会给程序带来困难,

使用指针可以做到这一点,就是改变外部变脸给的值。这个和JAVA的引用变量是一个的

11: 字符串,java 中是申明了就不能修改了,如果要修改就是StringBuffer

c语言中,都是通过string.h 里面的方法来操作的

12: 结构类型-标示,就有点像是java中的class

public Class Person{
int pid;
String name;
int age;

}

使用的时候Person p1;

//2.结构类型-结构标示

struct Person{

    int pid;

    char name[10];

    int age;

};//注意这了是有;的符号的

使用的时候struct Person p1;

struct Person{

    int pid;

    char name[10];

    int age;

}p2,p3={1,"hello",3};//注意这了是有;的符号的,而且可以在这里进行初始化和申明

//3:改进,成为结构类型定义,通过类型定义的方式,实现和java非常类似的

    

    typedef int BOOL; //这样bool 就代表int类型了

    typedef struct{

        int pid;

        char name[10];

        int age;

    } Customer;

    

    Customer c1;

    c1.pid = 9;

    strcpy(c1.name,"customer");

    c1.age=9;

    

    printf("pid=%d,name=%s,age=%d\n",c1.pid,c1.name,c1.age);

    

结构变量,结构类型标示,结构类型定义的区别

+++++++++++++++++++++++++

0:结构变量,每次用的时候都需要重新定义一遍。

//复合类型,结构变量的声明

    struct{

        int pid;

        char name[10];

        int age;

    } p1,p2;

++++++++++++++++++++++++++

1:结构标示,就是给结构起一个名字,

//2.结构类型-结构标示

struct Person{

    int pid;

    char name[10];

    int age;

};//注意这了是有;的符号的

使用的时候struct Person p1;

struct Person{

    int pid;

    char name[10];

    int age;

}p2,p3={1,"hello",3};//注意这了是有;的符号的,而且可以在这里进行初始化和申明

+++++++++++++++++++++++++

2:然后觉得可能还不是很好,那么就结构类型定义,就像java一样的使用了

typedef struct{

        int pid;

        char name[10];

        int age;

    } Customer;

    

    Customer c1;

+++++++++++++++++++++++++++

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: