1.C语言0基础自学-从第一行代码开始

2023-05-16

目录

声明

.h头文件

代码的开始

大括号

变量

局部变量(scpoe)

全局变量

变量的生命周期

定义一个变量


声明

#include <stdio.h>

声明这个源文件里需要包含一个名为stdio.h的头文件。

不声明直接调用库函数是不可以的,因为库函数是包含在这个文件里面的,关于什么是库函数后面会讲哒。

stdio = standard input output 意思是标准输入输出

用一些输入或者输出的函数就要声明<stdio.h>

        如果使用vs编译器的话,使用某些函数或者变量会提示此函数不安全,让你使用vs编译器特定的函数,如果使用了vs特定的函数,则此代码的可移植性会下降,到了别的编译器就又不能使用了。还有一种方法即是使用宏屏蔽掉这个不安全提示 。

#define _CRT_SECURE_NO_DEPRECATE

这个声明只能是放在源文件的第一行才可以。

.h头文件

再简单来说,在预处理阶段,编译器将c文件中引用的头文件中的内容全部写到c文件中。

在编译过程中,.h文件中的所有内容会被写到包含它的.c文件中,而所有的.c文件以一个共同的main函数作为可执行程序的入口。

声明时包含的.h文件相当于把所有.h的内容移动到c文件。

代码的开始

int main()

意思是代码的头,代码开始运行的时候就从main开始,每个文件中只能出现一个main。main前面加int的意思就是结果需要输出一个整形的数据。Int代表整形,也就是一个二进制16bit位大小的整数。main的后面必须有括号()。

在代码结束返回的时候要返回一个值,只有返回的值符合main前面要求的类型了代码才会结束,因为前面是int所以要返回一个整形,怎么返回呢就是用“return”,在他后面加一个整形比如0, 就是

return 0; 

大括号

一个大括号里面的是一组的,大括号里面可以再有多个大括号,可以套娃。但是在大括号里面声明的变量就属于局部变量,不能在大括号外面用,而且只能在声明时的这个大括号里面调用,他里面的子大括号属于在他里面,所以也可以用。出了这个大括号就是未定义的声明。所以变量的名字允许一样,调用变量的时候优先调用局部变量。但是名字一样这不好。

大括号里面的每一行代码说完都要加一个“;”英文的封号,要不然他不知道你这句完了没。

变量

一个变量能在哪一片范围内使用,这片范围就是它的作用域。

局部变量(scpoe)

局部变量的作用域 ,就是定义它所在的那个代码块里,即上面说的他的那个大括号+6里面

全局变量

全局变量的作用域是整个工程

只要是在同一个工程内,不同的源文件也可以使用全局变量,因为他的作用域是整个工程。但是如果变量定义的地方在外部空间,不在本源文件内部,则需要声明方可使用此全局变量,全局变量声明方式extern + 定义类型 + 变量名称。

变量的生命周期

是指一个变量从创建到销毁的这个时间段

局部变量:变量从进入这个局部代码块开始周期,直到从作用域出去即周期结束

全局变量:整个程序的生命周期即全局变量的生命周期 。

定义一个变量

用变量的时候得 定义它,让他申请一块空间,每个变量申请的空间大小,如

int a;

C语言中:

Char 字符类型  8bit  1字节

Int 整形(整数) 32bit  4字节

Short 短整型  16bit  2字节

Long 长整型  32/64bit(看计算机位数)  4/8字节

Long long 长长整形 64bit  8字节

Float  单精度浮点型 32bit  4字节

double 双精度浮点型 64bit  8c

语言语法定义规定,所有的变量定义必须都要在代码块的前面定义,不能在代码起跑后再有新的变量。

编译器问题——C89C99

C89规定,在任何执行语句之前,在块的开头声明所有局部变量。

C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1.C语言0基础自学-从第一行代码开始 的相关文章

  • KEIL5MDK最新版(3.37)安装以及旧编译器(V5)安装

    最近KEIl5最新版本出来了 xff0c 但官方不在默认安装V5编译器 xff0c 导致某些代码无法兼容 xff0c 为了防止搞忘 xff0c 便把方法上传网上 旧编译器的安装思路是 在以前有V5编译器的KEILMDK安装包中复制粘贴到新的
  • mp4转ros bag包

    操作方法 python2 mp4 to bag py lane video mp4 lane camera bag 执行转化命令 rosbag play l TLout bag camera image raw 61 image raw0
  • 深度学习之卷积神经网络CNN详细

    需要PPT加Q1271370903 一 深度学习引入 1 各学习方法之间的联系 SL SSL和UL是传统ML方法 DL提供了一个更强大的预测模型 可产生良好的预测结果 RL提供了更口快的学习机制 且更适应环境的变化 TL突破了任务的限制 将
  • 基于51单片机实现红外循迹

    红外循迹外观 xff1a 红外循迹原理 xff1a 红外循迹模块原理还是很简单的 xff0c 和许多光电传感器原理一样 xff0c 当发射器发射出去的光被接收器接收到后 xff0c 模块上对应的LED灯点亮 xff0c 此时相应的输出引脚输
  • Ubuntu“从服务器获取共享列表失败:拒绝连接”问题的解决方法

    本来是可以的 xff0c 在安装nginx后 xff0c ubuntu连接不上共享文件 有过以下尝试 删除nginx和所有配置 xff0c 关闭代理 或者搜一些什么安装smbd包什么的 还有连接ip地址进行挂载的 以及开放端口 我解决的方法
  • C语言:scanf的使用

    目录 一 scanf的循环读取 1 scanf的一次读取 2 加入while循环使scanf能进行循环读取 3 由于scanf出错时会返回EOF xff0c 故代码改为 4 加入rewind清空缓冲区 xff08 只适用于vs xff09
  • 搭建mysql的主从关系

    目录 1 什么是mysql主从 2 为什么要使用MySQL主从 3 MySQL主从的实现原理 4 如何搭建mysql主从关系 4 1 搭建两台有mysql的虚拟机 可以克隆 4 2 保证自己的mysql可以远程访问 4 3 修改ip地址 因
  • 关于虚拟机装Anaconda教学

    文章目录 一 第一步装VMware Workstation Pro虚拟机的安装二 下载虚拟机镜像文件三 安装python解释器 xff0c 安装Anaconda xff1a python解释器 xff1a 直接在DOS上安装 xff0c 操
  • C#ftp服务器配置与文件上传

    个人分享 public void test ftp服务器路径 string ftpServer 61 34 ftp 192 168 0 1 34 ftp本地路径 string ftpDefaultUrl 61 34 A 34 登入到ftp的
  • 完整的前端项目开发流程

    一个项目从一开始的计划到最后的上线 大概要经过以下的流程 产品设计原型审评项目分工项目开发项目测试项目构建项目上线 1产品设计 主要负责人 产品经理 产品经理前期负责收集销售 客户 领导的零散需求 然后做需求分析 完成产品设计 需求分析 需
  • debian11 sid

    编辑 etc apt sources list xff0c 增加下面二行 xff1a deb http ftp us debian org debian sid main contrib non free deb src http ftp
  • 单片机学习——定时器/计数器

    单片机必学系列 单片机学习 中断系统 单片机学习 存储器详解 xff08 程序存储器 片内RAM 拓展RAM EEPROM xff09 单片机学习 定时器 计数器 单片机学习 A D转换 更新ing 单片机学习 定时器 计数器 单片机必学系
  • ros bag包转mp4视频

    先在 rosbag2video py 脚本中修改相关配置参数 或者在终端命令改也行 如果使用脚本里的默认参数 则可直接运行 python rosbag2video py 2022 02 02 10 41 38 bag 代码如下 span c
  • 零基础入门Jetson Nano——通过OpenCV调用CSI和USB摄像头

    Jetson Nano学习 摄像头调用 前言一 CSI摄像头的调用1 安装v4l2 utils协助工具2 查看摄像头挂载情况3 查看挂载的摄像头详细参数情况4 检测摄像头能否正常工作5 使用OpenCV调用CSI摄像头方式一 利用Gstre
  • HTML搜索框的制作过程

    1 搜索框的构成 input标签和button标签我的理解应该就类似于行内块元素 xff0c 可以设置宽高 xff0c 但同时又不独占一行placeholder 占位文本 就是输入框一开始默认显示的文本 span class token t
  • Linux

    Linux 文件管理创建目录创建文件复制剪切 重命名删除归档 xff08 解压 压缩 xff09 文件查看帮助文档查看信息文件显示当前工作目录切换目录请屏显示文件内容文件内容搜索文件搜索链接文件搜索命令所在位置 Linux系统查看进程终止进
  • isalpha()库函数

    C C 43 43 isalpha 库函数 isalpha 函数用来检测一个字符是否是字母 xff0c 包括大写字母和小写字母 头文件 xff1a 属于ctype h头文件 xff1b 但也包含在iostream头文件下 语法原型 xff1
  • 计算机网络(谢希仁-第八版)第四章习题全解

    4 01 网络层向上提供的服务有哪两种 xff1f 试比较其优缺点 xff1f 虚电路服务和数据报服务 虚电路 优点 xff1a 1 可以提供可靠的通信服务 2 因为数据是沿着建立的虚电路进行传输的 xff0c 因此分组的首部不需要携带完整
  • Linux下线程池(ThreadPool)

    目录 一 线程池相关概念及其优点 二 线程池的实现 一 线程池相关概念及其优点 线程池一种线程使用模式 xff0c 线程过多会带来这个调度的开销进而影响整体的性能 xff0c 而线程池是提前准备好了线程等待着管理者进行分配任务 1 线程池的
  • Golang协程常见面试题

    协程面试题 交替打印奇数和偶数N个协程打印1到maxVal交替打印字符和数字交替打印字符串三个协程打印ABCChannel练习 交替打印奇数和偶数 下面让我们一起来看看golang当中常见的算法面试题 使用两个goroutine交替打印1

随机推荐