完全自学C(干货) —— C简介

C语言进阶:深入理解函数 本文深入探讨C语言函数特性与参数传递机制。研究发现函数名本质上是函数地址,通过实验证实add()、(&add)()和(*add)()三种调用方式完全等价。重点分析了参数传递的两种方式:值传递会创建实参副本,不影响原变量;地址传递通过指针间接修改原变量。文章还警示了返回局部变量地址的危险性,并通过实例展示了结构体参数传递的最佳实践。这些核心概念对编写正确、高效的C程序至关重要。 阅读详情

目录

一,计算机语言

二,C语言

三,C语言编程开发


一,计算机语言

计算机语言,是人与计算机交流的语言,是人与计算机之间传递信息的媒介;

分类:机器语言、汇编语言、高级语言

机器语言:是指机器能直接识别的程序语言或指令代码,无需经过翻译;是由"0"和"1"组成的有意义的二进制代码;

汇编语言:是面向机器的低级语言,不能被机器直接识别,需要翻译;和机器语言实质是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,容易识别和记忆。

高级语言:所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:解释类和编译类。高级语言包括,Java/Pascal/Python/C/C++/C#等等;

二,C语言

C语言是一种通用计算机(高级)编程语言;面向过程;广泛应用于计算机系统设计以及应用程序编写;

设计目标,是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的 C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及 超级电脑等作业平台。 

C语言的发展

  • 诞生于1972年,由丹尼斯·里奇在B语言的基础上最终设计出的一种语言;1977年,其发表了《可移植的C语言编译程序》;
  • 1989年,ANSI(美国国家标准协会)发布了第一个完整的C语言标准——ANSI X3.159-1989,简称“C89”,习惯于称“ANSI C”;
  • 1990年,ISO(国际标准化组织)将C89一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899:1990也通常被简称为“C90”;
  • 1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。
  • 2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899:2011,简称为“C11”。

C语言特性

  • C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
  • C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
  • 不同的变量类型可以用结构体(struct)组合在一起。
  • 只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
  • 部分的变量类型可以转换,例如整数型和字符型变量。
  • 透过指针(pointer),C语言可以容易的对存储器进行低端控制。
  • 编译预处理(preprocessor)让C语言的编译更具有弹性。

三,C语言编程开发

编译器

GCC,GNU组织开发的开源免费的编译器

MinGW,Windows操作系统下的GCC

Clang,开源的BSD协议的基于LLVM的编译器

Visual C++ :: cl.exe,Microsoft VC++自带的编译器

集成开发环境

Code::Blocks,开源免费的C/C++ IDE

CodeLite,开源、跨平台的C/C++集成开发环境

Dev-C++,可移植的C/C++IDE

C-Free

Light Table

Visual Studio系列

机械转行java自学经历,零基础学java,血泪总结的干货 机械转行java自学经历,零基础学java,血泪总结的干货 据说,再恩爱的夫妻,一生中都有100次想离婚的念头和50次想掐死对方的冲动。 求职路上亦是如此,打开这篇文章,相信你也有转行的想法。和身边的朋友聊过,入职后的他们,或多或少对现在的职位都有些不满,都有过转行的冲动。 可他们只是想,而我真的这样做了。 下面就介绍下我转行的血泪史。 我为什么要转行 高中复读了一年,考了个双非院校的机械。当时... 阅读详情

相关推荐

没基础的大学生如何自学c语言 ?

史上最强C语言学习大全,多亏我足够无耻,才从公司六位C语言程序员口中问出方法来。 没错。 这篇文章总结于我们公司六位使用C语言作为开发语言的程序员前辈,方方面面近三千五百字。 C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。真的太多人学也有太多要学的东西了,以至于后台总有人问C语言该怎么学,甚至还有具体问编程问题的。 乘此机会,整理C语言程序员的从入门到精通之路,分享一下这么多年来我们公司C语言程序员的学习心得。 为了这篇文章,我是费尽口舌,软磨硬泡收集到信息之后,又花

BinSTD的博客 2426

深入浅出C语言——C语言简介

编程语言,简单来说,就是一种计算机和人都能识别的"交流方式"。它让程序员能够准确地告诉计算机需要处理什么数据,以及在什么情况下应该执行什么操作。机器语言(第一代)就像最原始的符号系统,比如二进制代码101001,计算机能直接理解,但人类读起来就像天书汇编语言(第二代)则像有了简单的词汇表,用ADD这样的助记符代替二进制指令,虽然还是接近底层,但已经友好多了高级语言(第三代)从20世纪60年代开始兴起,就像有了完整的语法体系,C、C++、Java、Python 等都是其中的代表。

weixin_55051736的博客 1万+

C/C++学习路线总结与分享

C/C++学习路线总结与分享

dvlinker的技术专栏 11万+

C语言

Ben_boba的博客 443

TGK-planner编译报错PLUGINLIB_EXPORT_CLASS解决

TGK-planner编译报错解决。

latter97的博客 857

电力-平衡式IEC 60870-5-101规约报文解析

本文详细介绍了电力自动化中平衡式IEC 60870-5-101规约的应用,包括链路建立与初始化、对时、遥控操作、数据上送和总召唤等关键步骤,通过实例解析了报文格式和交互过程,是理解配网自动化通信的重要参考资料。

让你爱上电路设计 5684

C语言入门基础知识【完整版】

C语言入门基础知识整理,快速入门~

面对疾风吧,哈撒给! 11万+

RDMA网络通信技术、NCCL集合通讯(GPU)

NCCL 是 NVIDIA 专为 GPU 设计的高性能集合通信库,用于优化多 GPU、多节点间的集体操作(如 AllReduce、Broadcast、AllGather 等),是深度学习分布式训练的核心组件。RDMA 允许计算机直接访问远程内存,无需 CPU 干预,大幅降低了网络通信的延迟和 CPU 开销。常见的 RDMA 实现包括。是两项关键技术,用于优化节点间数据传输效率和大规模并行计算性能。在高性能计算(HPC)、人工智能训练和数据密集型场景中,

weixin_42795092的博客 2422

手把手教你如何自学计算机,绝对的干货满满!!!

a. 自我介绍; 在下姓赵,编程萌新,现大一,非计算机专业新生,第一次接触并学习C语言是大一上学期,学习一段时间后尝试写 b. 编程目标; c. 如何学习编程; d. 在学习编程上每周花费多少时间; e. 我最想进入的一家IT公司; ...

qq_56847032的博客 3万+

Linux 之 supervisor安装和使用

运行Supervisor的后台服务,它用来启动和管理那些你需要Supervisor管理的子进程,响应客户端发来的请求,重启意外退出的子进程,将子进程的stdout和stderr写入日志,响应事件等。它是Supervisor最核心的部分。

chang995196962的博客 5545

一、数学建模层次分析法(AHP)【清风数学建模个人笔记】

层次分析法: 层次分析法主要用于解决评价类问题(例如:选择哪种方案更好、哪位员工、运动员等表现得更优秀) 评价类问题: 分析问题得出评判问题的子标,分别给不同子标赋予权重(权重和要为1) ...

m0_58882109的博客 1万+

30个珍藏的程序员超实用自学网站,干货!

有朋友问我平时都是在哪里自学的呢?大学四年以来我收藏了各种学习网站今天一次性分享给大家,一起学习! 一、视频类自学网站 1.哔哩哔哩 自学观看各种教程视频,比较推荐B站,各个领域极其全面。 网址:https://www.bilibili.com/ 2.慕课网 这个网站也是比较常用的,有各种实用的教程,如果你想快速入门一种语言的话,可以到这看看。 网址:https://www.imooc.com...

zag666的博客 3万+

基于Python API的ECMWF大气数据批量下载与自动化处理实践

本文详细介绍了如何利用Python API实现ECMWF大气数据的自动化批量下载与处理。针对遥感分析中手动下载ERA5等数据的痛点,文章提供了从API密钥配置、核心脚本编写到元数据解析、任务队列调度及数据质量检查的全流程实践指南,旨在帮助科研与工程人员高效获取并处理大规模气象数据。

u8v9w0x1y的博客 479

完全自学C(干货) —— 编译与链接

编译与链接,预处理指令;

NapoleonCoder的博客 1203

华为OD机试双机位C卷-水库溃坝填补(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【水库溃坝填补】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。水库溃坝填补。

qq_45776114的博客 2109

基于Simulink建模仿真的滑模控制的磁悬浮轴承稳定控制仿真

磁悬浮轴承(Magnetic Bearing)利用电磁力来支撑和定位转子,无需机械接触,因此在高速旋转设备中具有广泛应用。滑模控制(Sliding Mode Control, SMC)是一种鲁棒性强的非线性控制方法,适用于磁悬浮轴承的精确控制。以下是基于Simulink的磁悬浮轴承滑模控制系统的详细设计与仿真步骤。通过上述步骤,设计并实现了基于 Simulink 和 Control System Toolbox 的磁悬浮轴承滑模控制系统。

MHD0815的博客 780

完全自学C(干货) —— 函数

即子程序,是大型程序中某部分代码,由一个或多个语句块组成,通常被集成为软件库;

NapoleonCoder的博客 380

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

0基础Java自学之路

前言 最近逛知乎的时候,经常看到有人在问“0基础如何自学Java”、“干了几年**,想转行干Java靠谱吗”等问题。不禁让我回想起了自己当初自学Java的日子,因此在这个周末花了点时间,整理了这篇文章,希望对这些正打算自学Java的或者打算转行Java的人有点帮助。 我的自学之路 先告诉你们我的自学过程可能让你们有点参考。 大三的时候,班主任请了2个已经拿到offer的实验室同学来跟...

程序员囧辉 3万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

完全自学C(干货) —— 数组

一组相同类型元素的集合,可存储一系列相同类型的数据;

NapoleonCoder的博客 1154

完全自学C(干货) —— 常量、变量

常量:不能改变的量,在程序的运行过程中,不能变化的量; 变量:能被改变的量,在程序的运行过程中,可能会改变或者被赋值的量;

NapoleonCoder的博客 366

【方法分享】准大学生如何自学C语言?

准大学生如何自学C语言 文章目录准大学生如何自学C语言一、找寻一个优质教学视频二、使用优质编译器三、安排一个电子笔记需不需要一个ipad来辅助学习?结语 虽说现在已经接近我们最长的且无忧无虑的暑假的尾声 但我估摸着很多小伙伴还是和我一样整天摸鱼,不知不觉就浪费了一天 (其实只有我在摸鱼对吗,流下了不争气的泪水) 不扯这些没用的,进入今天的正题 本篇博客和大家分享一下我是如何自学C语言的,以及如何做学习笔记 学习方法各不相同,请以自身情况为准 一、找寻一个优质教学视频 好的教学资源永远是我们学习的第一步 在这

慕雪华年的博客 3178

给自学编程的少年们的一点小干货

适合自学的同学的干货      注意关键字,自学,整天上网看教程视频的,右上角,谢谢。     喜欢编程的和自学能力强的,其实根本不用去网上看所谓的教学视频,书籍,前辈们的经验,都可以看看, 当然我并不是说我自己有很强的自学能力,因为嘛,当初学C语言的时候,书上说入门到精通,只要21天,可是 我用了两个月也只能写个图书管理系统,(PS:现在才学了3个月,说我没能

AA_XB_AA的博客 454

完全自学C(干货) —— 文件

文件名/文件指针/文件的打开和关闭/文件的顺序读写/文件的随机读写/文本文件和二进制文件/文件的结束判定/文件缓冲区;

NapoleonCoder的博客 543

完全自学C(干货) —— 预处理详解

预处理;

NapoleonCoder的博客 941

自学C语言的五大误区:为什么有人3个月放弃,有人却能成为高手?

C语言作为一门经典且强大的编程语言,在系统软件、嵌入式开发、游戏开发等众多领域都有着广泛的应用。许多人怀揣着对编程的热情踏上了自学C语言的道路,但结果却大相径庭:有的人在短短3个月内就选择放弃,而有的人则能逐渐成长为编程高手。造成这种差异的原因,很大程度上在于是否陷入了自学的误区。本文将为你揭示自学C语言的五大误区,帮助你避开陷阱,更高效地学习C语言。

星辰夜语的博客 1108
下一篇: 完全自学C(干货) —— 第一个C代码
挨代码
博客等级 码龄5年 1696粉丝 384原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值