c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言和java语法有区别吗

更新时间:2023-10-07

第一段:语法结构的不同

虽然C语言和Java语言看起来很相似,但它们在语法结构上有很多不同之处。例如,C语言中声明变量必须在函数开头,而Java语言中可以在任何位置声明变量。


    // C语言声明变量示例
    #include <stdio.h>

    int main() {
        int a = 1;
        printf("%d", a);
        return 0;
    }

    // Java语言声明变量示例
    public class HelloWorld {
        public static void main(String[] args) {
            int a = 1;
            System.out.println(a);
        }
    }

第二段:内置函数的不同

C语言和Java语言的内置函数也不同。C语言中只有一些标准的头文件,具体的数学函数,如sin、cos和sqrt等,需要使用特定的库文件来实现。Java语言中,所有的数学函数都在Math类中,不需要引用特定的库文件。


    // C语言使用数学库文件的示例
    #include <stdio.h>
    #include <math.h>

    int main() {
        double x = 0.5;
        double result = sin(x);
        printf("sin(%lf) = %lf", x, result);
        return 0;
    }

    // Java语言使用Math类的示例
    public class HelloWorld {
        public static void main(String[] args) {
            double x = 0.5;
            double result = Math.sin(x);
            System.out.println("sin(" + x + ") = " + result);
        }
    }

第三段:对象的处理方式

Java语言中所有的一切都是对象,而C语言则不然。在C语言中,对象是由结构体来定义的,而Java语言通过类来定义对象。此外,在C中,需要手工管理内存,而Java中自动进行内存管理。


    // C语言定义结构体的示例
    #include <stdio.h>
    
    struct Book {  
        char title[50];  
        char author[50];  
        char subject[100];  
        int book_id;  
    };

    int main() {
        struct Book book = {"C语言编程", "小刚", "编程入门", 12345};
        printf("Book Id : %d\n", book.book_id);
        printf("Book Title : %s\n", book.title);
        printf("Book Author : %s\n", book.author);
        printf("Book Subject : %s\n", book.subject);
        return 0;
    }

    // Java语言定义类的示例
    public class Book {
        private String title;
        private String author;
        private String subject;
        private int bookId;

        public Book(String title, String author, String subject, int bookId) {
            this.title = title;
            this.author = author;
            this.subject = subject;
            this.bookId = bookId;
        }

        public void displayInformation() {
            System.out.println("Book Id : " + bookId);
            System.out.println("Book Title : " + title);
            System.out.println("Book Author : " + author);
            System.out.println("Book Subject : " + subject);
        }

        public static void main(String[] args) {
            Book book = new Book("Java编程", "小明", "编程入门", 12345);
            book.displayInformation();
        }
    }

第四段:异常处理的不同

Java语言有一个强大的异常处理机制,程序员可以像直接写业务逻辑一样编写对异常的处理。而在C语言中,异常处理机制很少用到,程序员需要自己定义返回值来指示异常,这使得程序难以维护。


    // C语言自定义返回值来指示错误的示例
    #include <stdio.h>

    int divide(int num1, int num2, int *result) {
        if (num2 == 0) {
            return -1;
        }
        *result = num1 / num2;
        return 0;
    }

    int main() {
        int num1 = 10, num2 = 0, result;
        int res = divide(num1, num2, &result);
        if (res == -1) {
            printf("Error: divide by zero\n");
        } else {
            printf("%d / %d = %d\n", num1, num2, result);
        }
        return 0;
    }

    // Java语言异常处理的示例
    public class Divide {
        static int divide(int num1, int num2) throws ArithmeticException {
            if (num2 == 0) {
                throw new ArithmeticException("divide by zero");
            }
            return num1 / num2;
        }

        public static void main(String[] args) {
            int num1 = 10, num2 = 0, result;
            try {
                result = divide(num1, num2);
                System.out.println(num1 + " / " + num2 + " = " + result);
            } catch (ArithmeticException e) {
                System.out.println("Error: " + e.getMessage());
            }
        }
    }