C语言和Java区别

结构体vs类

C语言没有类,但是有结构体,结构体中不能有函数,只能有属性。

面向过程的思考方式中,数据和操作是严格分离的。1

声明调用顺序?2

C语言,先声明后调用,想要调用一个子流程,势必要在调用之前就定义好。

Java,没有函数定义先后的问题。

C 编译器(传统实现)扫描源文件时是从上往下、一遍过 的。当它遇到函数调用时,必须当场知道这个函数的签名(返回类型、参数类型),因为:

1、要生成正确的机器码:返回值占几个字节、参数怎么压栈,调用的同时就要确定;

2、要做类型检查:你传 int 给接收 char* 的函数,必须在调用点报错。

Java 编译器是多趟扫描 的:

第一趟:从头到尾读完整个 .java 文件,把所有类的成员(字段、方法签名)先登记进符号表;

第二趟:再逐方法检查方法体里的调用是否合法。

分工职责

没必要分成一个专门写变量、一个专门写方法的,用Java类根据要实现的功能实现方法(写方法自设变量)。

语言历程

年份 语言 作者/公司 为什么会出现
1972 C Dennis Ritchie(贝尔实验室) 重写 Unix 操作系统,需要能直接操作硬件的高级语言
1983~85 C++ Bjarne Stroustrup(贝尔实验室) 在 C 基础上加面向对象,管理越来越大的软件项目
1991~95 Java James Gosling(Sun 公司) 对 C++"做减法":去掉指针、加垃圾回收、实现跨平台
2000 C# 微软 微软对标 Java 的产物,随 .NET 平台推出

1: C语言知识分享:面向对象和面向过程到底是怎么回事?

2:和 Kimi 的对话

相关推荐
Helix2504 天前
2026编程入门指南:零基础如何科学选择第一门编程语言?
java·c语言·javascript·零基础·编程语言·python入门·编程就业
Helix2504 天前
Python与其他编程语言优劣势对比:2026初学者选型指南
java·python·教程·编程语言·入门·初学者编程选型
狼爷4 天前
Rust/Go/Java/Python/PHP 大比拼:负载下后端框架到底差多少?
java·后端·编程语言
天若有情6734 天前
开源|Comfort Lang v1.0.1,一款主打清爽交互的新型命令式编程语言
python·开源·交互·编程语言·项目分享·repl·comfort lang
被摘下的星星5 天前
编程de强语言和弱语言
编程语言
codigger7 天前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
Sammyyyyy9 天前
结构化决策模型 Jev 实战笔记,3 个原语、4 个限制、5 个落地场景
人工智能·笔记·开发工具·编程语言
武雄(小星Ai)12 天前
Opus 5.5 降价40%、GPT-6 API腰斩:2026年9月AI编程模型选购指南(附成本计算器)
人工智能·ai·编程语言
柯南466812 天前
【AI开发之Rust】第 21 课:双端集成与出包 —— Android(.so→AAR)与 iOS(xcframework)
rust·编程语言