学习 C语言第一天 :C语言常见概念

news2024/11/26 16:58:27

1.C语言是什么?

  那人和计算机是怎么交流的呢?使用计算机语言。

  C语言就是众多计算机语言中的一种,当然C++/Java/Go/Python都是计算机语言。

2.了解 C语言的历史和辉煌

  初衷:C语言最初是作为 Unix系统开发工具而发明的。

  历史过程:

  2.1.发明 B语言: 1969年,贝尔实验室的肯·汤普森(Ken Thompson)与丹尼斯·里奇(Dennis Ritchie) 一起开发了Unix 操作系统。Unix 是用汇编语言写的,为了移植到其他计算机,汤普森就在 BCPL 语言的基础上发明了 B 语言。

  2.2.发明 C语言:1972年,丹尼斯·里奇和布莱恩·柯林汉(Brian Kernighan) 又在 B 语言的基础上重新设计了一种新语言,这种新语言取代了 B 语言,所以称为 C语言。

  2.3.过程Unix系统使用C重写:1973年,整个 Unix 系统都使用 C 语言重写。此后,这种语言开始快速流传,广泛用于各种操作系统和系统软件的开发。

  2.4.过程 C 语言标准化:1988年,美国国家标准协会 (ANSI) 正式将C 语言标准化,标志着 C 语言开始稳定和规范化。

  2.5.至今 :一直到今天C语言还是在广泛的使用,在计算机语言的排行榜上霸占前三名。

3.C语言 编译 和 链接

  3.1.编译和链接

     C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。

     C语言代码是放在,.c 为后缀的文件中的,要得到最终运行的可执行程序,中间要经过编译和链接2个过程。

     注意:1.每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obi为后缀的文件)

                2.多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)

                 所以这就是为什么在windows下运行C语言程序生成的 exe 可执行文件。

4. VS 项目的 源文件 和 头文件介绍

  4.1.在C语言中,把 .c 为后缀的文件称为源文件,把 .h 为后缀的文件称为头文件

 

5.讲解 第一个 C语言程序

#include <stdio.h>




int main() {
	printf("Hello ! NanChengYuan!");
	return 0;
}

  5.1.main 函数

      每个C语言程序不管有多少行代码,都是从 main 函数开始执行的,main 函数是程序的入口,main 函数也被叫做:主函数。 main 前面的 int 表示 main 函数执行结束的时候返回一个整型类的值,所以在 main 函数的最后写 return 0; 正好前后呼应。

  • main函数是程序的入口
  • main函数有且仅有一个
  • 即使一个项目中有多个.c文件,但是只能有一个main函数 (因为程序的入口只能有一个)

 

  5.2.printf 和 库函数

     在上面有一句代码:

printf("Hello ! NanChengYuan!");

     代码中使用了 printf 函数,实现了在屏幕上的信息的打印。

     这里简单的介绍一下 printf ,printf 是一个库函数,它的功能是在标准输出设备 (一般指屏幕)上进行信息的打印。上面的代码是使用 printf 函数打印字符串。只要把想要打印的一串字符放在双引号中并传递给printf函数就可以打印。

   5.3.什么是库函数?

       为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上一些编译器厂商可能会额外扩展提供部分函数 (这些函数其他编译器不一定支持)。

    注:在 VS 运行程序的时候,快捷键 CTRL + F5,库函数比较多,

          可以参考链接的内容:https://cplusplus.com/reference/clibrary/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/782123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp uni.$emit()失效

1.业务场景 settle.vue页面引入bjs-settle.vue组件&#xff0c;bjs-settle.vue组件点击后在settle.vue中进行结算操作&#xff08;过程中有跳转&#xff09; 本来以为使用vue的this.$emit()就可以实现子组件回调父组件中的方法&#xff0c;但是发现没用。 然后看到uniapp中需…

Linux性能与统计命令

目录&#xff1a; linux常用命令之性能统计linux常用统计命令linux进程与线程Linux性能统计 1.linux常用命令之性能统计 为什么要学习性能统计&#xff1f; 性能统计是衡量系统性能的重要手段&#xff0c;通过对系统各项指标的监控和分析&#xff0c;可以及时发现系统瓶颈和…

山西电力市场日前价格预测【2023-07-24】

日前价格预测 预测明日&#xff08;2023-07-24&#xff09;山西电力市场全天平均日前电价为338.25元/MWh。其中&#xff0c;最高日前电价为377.59元/MWh&#xff0c;预计出现在20: 30。最低日前电价为283.56元/MWh&#xff0c;预计出现在13: 30。 价差方向预测 1&#xff1a;实…

Linux系统初装后的配置

目录 1、学习环境关闭SElinux 2、关闭防火墙 3、添加用户 4、使用sudo进行权限管理 5、修改ssh服务的默认配置 6、修改网卡参数 环境&#xff1a;centOS7 1、学习环境关闭SElinux 临时关闭 &#xff1a;setenforce 0;查看状态&#xff1a;getenforce;临时开启&#xff…

uniapp 小程序 查看评价

查看评价效果图&#xff1a; 评分组件在上一篇文章&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; <template><view class"view-comments"><view class"evaluate-box"><view class"ti…

C++ | set与map的用法指南

前言 前面我们学习了vector、list等容器&#xff0c;其实他们都属于序列式容器&#xff0c;因为其底层为线性结构&#xff1b;今天我们学习使用的set与map是属于关联式容器&#xff0c;关联式容器更注重于数据检索访问的效率&#xff1b;本文所有的资料均查阅于文档&#xff0c…

Python实战项目——旅游数据分析(四)

由于有之前的项目&#xff0c;所以今天我们直接开始&#xff0c;不做需求分析&#xff0c;还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析&#xff08;三&#xff09; 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…

Sentinel授权规则与规则持久化

&#x1f333;&#x1f333;&#x1f333;&#x1f333;&#x1f333;&#x1f333;&#x1f333; 学习授权规则前&#xff0c;先想想SpringCloud Gateway的黑白名单&#xff0c;请求过网关&#xff0c;gateway会去鉴权。但如果有人把微服务信息泄露出去了呢&#xff1f;此时微…

输出函数print

print("hello world") # 可以输出数字 print(1111) print(2222) # 可以输出字符串 print(helloworld) print("helloworld") # 可以输出运算符的表达式 print(56) # 将数据输出文件中&#xff0c;注意点&#xff1a;1.所指定的盘符存在&#xff0c;2.使…

「苹果安卓」手机搜狗输入法怎么调整字体大小及键盘高度?

手机搜狗输入法怎么调整字体大小及键盘高度&#xff1f; 1、在手机上准备输入文字&#xff0c;调起使用的搜狗输入法手机键盘&#xff1b; 2、点击搜狗输入法键盘左侧的图标&#xff0c;进入更多功能管理&#xff1b; 3、在搜狗输入法更多功能管理内找到定制工具栏&#xff0c…

uni-app中全局设置页面背景颜色

在uni-app中设置背景颜色&#xff0c;想象中应该很简单&#xff0c;其实里面也还是有点小坑的&#xff0c;我们来一起看一下。 方法一&#xff1a;pages.json globalStyle 中设置 backgroundColor 结果&#xff1a;未生效 猜测可能是颜色不能用别名&#xff0c;换十六进制试一…

讯为RK3568开发板入门之-tftpnfs的配置

基础条件 VMware虚拟机 Ubuntu18.04 【网络配置陈桥接模式】 RK3568开发板【我是用讯为的RK3568】 网线连接路由器或者和电脑直连 配置TFTP和NFS的作用 使用tftp和nfs网络挂载可以很方便的进行软件的调试&#xff0c;挂载成功后只要把Ubuntu下编译好的文件程序放到挂载的目录…

有名管道(FIFO)的学习笔记

文章目录 有名管道介绍有名管道的使用创建 注意事项 有名管道介绍 有名管道的使用 创建 命令&#xff0c; mkfifo name函数&#xff0c;int mkfifo(const char *pathname, mode_t mode); 设置错误号&#xff1b; 向管道中写数据&#x1f447;&#xff1a; 从管道读数据&am…

数据库新闻速递 SingleStore Kai for MongoDB有以下6个关键特性, MONGODB 也疯狂

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到3群&#xff08;共…

Hive查询性能优化——物化视图(materialized view)

1. 背景&#xff1a; 在一次大表查询中&#xff0c;查询速度非常慢,插叙时间以分钟为单位&#xff0c;而生产需求要达到10s以内。造成这个问题的原因有多种&#xff0c;性能调优的方式也有多种&#xff0c;这里记录一下其中一种方案&#xff0c;采用物化视图&#xff08;Mater…

[JAVAee]synchronized关键字

目录 1.synchronized的特性 ①互斥性 ②可重入性 2.synchronized的使用示例 ①修饰普通方法 ②修饰静态方法 ③修饰代码块 1.synchronized的特性 ①互斥性 互斥性,就像是给门上锁了一样. 当A线程使用了被synchronized修饰的代码块并对其上锁,其他线程(B线程,C线程)想要使…

从零开始学习自动驾驶路径规划-环境配置

从零开始学习自动驾驶路径规划-环境配置 前面&#xff0c;每个人遇到的问题不一样&#xff0c;这里记录了配置步骤和目前遇到的问题&#xff0c;会持续更新报错解决方法。配置时有报错请认真看报错经验 环境配置步骤&#xff08;18.04和20.04都可以&#xff0c;有些问题没遇到…

流媒体视频融合平台EasyCVR更新版本后,首页无法打开的原因排查与解决

EasyCVR视频融合平台基于云边端一体化架构&#xff0c;可支持多协议、多类型设备接入&#xff0c;包括&#xff1a;NVR、IPC、视频编码器、无人机、车载设备、智能手持终端、移动执法仪等。平台具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环境中&#xff0c…

精通自动化,Pytest自动化测试框架-fixture用例的前后置(实现)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试用例实现前后…

软件项目验收测试报告-软件项目验收流程

目录 一、什么是项目验收&#xff1f; 二、软件项目验收材料的准备 三、软件项目验收&#xff0c;按照验收的流程&#xff0c;可分为验收准备、初步验收、最终验收和项目交接四个部分。 对甲方而言&#xff0c;项目验收是正式接受项目成果&#xff0c;将项目从建设转为运营。…