详解C语言初阶基础

目录
  • 1.什么是c语言
  • 2.初始化:
  • 3.变量和常量
  • 4.作用域与生命周期
    • 简单阐述:
      • 作用域:
      • 生命周期(存在与消失):
  • 作用域与生命周期的区别
    • 作用域:
    • 生命周期:
  • 5.     为什么c中存在了各种数据类型:
  • 6.常量:
  • 7.c语言的字符串:
  • 8.转义字符(\)
    • 注意:
  • 9.注释:
    • 快捷键
  • 总结

1.什么是c语言

c语言是一门通用计算机编程语言,是一种面向对象的编译型语言,广泛用于底层开发。其设计目的是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何环境便能运行的编程语言.

c语言的实质就是生成一个可执行的exe文件

2.初始化:

开辟一个空间时同时放进去某个内容,叫做初始化(伴随空间开辟时就有的值,如同一出生就有的性别),初始化赋值的变量是可以更改的,叫做赋值(实质是对原值的覆盖,比如后期做手术转换性别)。

3.变量和常量

在我们的生活中,有变量和常量。

身高、变化的量体重、头发个数、钱包内钱数量、年龄这些就叫作变量,是可以更改的量。

身份证号、手机号、性别、种族、(啊,一般情况下都是不会变的) 我们把它们叫做常量,是不可更改的量

临时变量与全局变量

变量又分为临时变量(也叫局部变量或自动变量)和全局变量

放在函数块内部的叫做临时变量,而函数块之外的叫做全局变量

局部变量只能在本函数内部使用,而不能在其他函数块中使用

变量的使用采用就近原则(即局部变量优先于全局变量),既然局部变量优先,那么就没必要在同名时仍然定义局部变量(这样的定义我们并不推荐)

4.作用域与生命周期

简单阐述:

作用域:

局部变量的作用域就是变量所在的局部范围

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

生命周期(存在与消失):

局部变量:进入作用于生命周期开始,出作用与生命周期结束

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

作用域与生命周期的区别

作用域:

实质是影响范围,例如有一个叫小吴的人(一个城市人们都知道的明星),只有城市中的人知道小吴,农村的人不知道,所以小吴的作用域就是城市。

当超出作用域后,变量就不可以被访问

实质上作用域是代码块范围的定义和使用(如函数代码块,注意函数内部也可能有代码块,比如for、while、switch、do-while、if等语句块中)

生命周期:

实质是变量的存在与销毁,小吴从出生,到死亡90岁,这90年就是他的生命周期。

5.     为什么c中存在了各种数据类型:

这里补充一下sizeof,sizeof是用来求所占内存大小的一个操作符(初学者不必深究),单位是字节

计算机的发明本质是为了解决人的问题的

人:有临时数据和全局数据,而数据本身是需要被存储的,数据本身有大小,要占据空间。

c语言为了能够记录数据,保存数据,所以就有了数据类型

而且要有不同大小的类型。

不是数据类型用来存储数据,而是用数据类型来进行对变量的定义,而数据是存储在变量中的,用来定义变量大小的模板叫作数据类型。

所谓的数据类型就是变量不同的模板,用来生成不同大小的变量

如同月饼模具并不等于月饼,只是月饼的模板,决定了月饼的大小(不同的模板可以做出不同大小的月饼,而吃的是月饼,不是月饼模板)

Sizeof(1)=sizeof(int),因此模具和用这个模具做出的月饼大小实质是相同的。

6.常量:

·字面常量(一般不使用)

如10,‘b',”hello world”   不用定义变量类型和变量名(不报错),但不能直接使用(意思就是每次都要写原值,不方便,没必要)

不能对字面常量进行修改

宏定义(define)

#define M 100(不写类型、不写分号)

const常量

const int a=10;(只加一个后缀 const),只能初始化而不能赋值

枚举常量(enum),枚举在函数之外(不做深究)

7.c语言的字符串:

字符(单引号,大小一个字节)与字符串(双引号,大小4个字节);

字符串默认以'\0'结尾,即使我们自己没有添加(大部分情况)

双引号内部是字符串字面值,结束标志是一个默认的\0转义字符,字符串内容不包括结束标志

c语言中有字符串,但是没有字符串类型,没办法直接定义字符串类型,但有保存字符串的方法:字符数组或者字符指针(初学者此处不必细究)

这里补充一下strlen,strlen是用来求字符串的函数,头文件是stdlib.h,strlen遇到'\0'后停止,且不包括'\0'

8.转义字符(\)

字面转特殊,特殊转字面

转义: 特殊转字面(‘ ->\ '),字面转特殊(n ->\n)

注意:

i:   每个转义字符都是一个字节,如'\t' , ‘\xhh'

II:  c语言中不能直接输出一个单引号,单引号是字符的界定符(本身有特殊含义),但用' \' '可以转义后进行输出,即特殊转普通,输出单引号,类似的还有 斜杠'\' , 双引号 ‘ ” ' 等

III:  转义的是普通字符,且没有特殊含义时,原样输出如'\c'='c'

IV:   \125  转义为八进制数对应十进制的askll码值

\128 只转义八进制数12对应十进制的askll值,8照常输出

V:当光标回退时,会将路径上的原有数据进行删除,如'\b', '\r',

这里补充一个知识点:回车和换行

换行:更换到下一行,而不管位置

回车:回到该行的开始

因此我们通常所说的回车实际上是先换行再回车

因此键盘上enter标志通常是 往下走再往左走的箭头

而在c语言中直接使用'\n'就是回车+换行的意思

但'\r'就是单纯的回车,回到开头,光标倒退,施行删除功能,将原值删除,光标回退,可以用来做计时(如下图中输出结果会从9渐变到0,此处初学者不必深究)

9.注释:

快捷键

注释:ctrl+c后ctrl+k ; 取消注释:ctrl+c后ctrl+

c语言注释分为两种,c(/**/)和c++(//)风格

注释时选到头部 默认为c++风格

注释时未全选 风格为c

我们推荐使用c++风格注释,因为c风格注释不支持嵌套,如:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • C语言基础文件操作方式超全详解建议收藏

    目录 什么是文件 文件名 文件类型 文件指针 文件的打开与关闭 打开方式 文件的顺序读写 关于fread的返回值 对比一组函数 文件随机读取 文件结束判断 perror() ferror() 什么是文件 磁盘上的文件是文件. 在程序设计中,我们一般读的文件有两种:程序文件 和 数据文件 程序文件包括源程序文件(后缀为.c).目标文件(win下后缀为 .obj).可执行文件(win下环境后缀为.exe) 数据文件:文件的内容不一定是程序,而是运行时读写的程序,比如程序运行需要从中读取数据的文件,或

  • C语言指针基础详解

    目录 1.1:概述 1.1.1:内存 1.1.2:内存 1.1.3:指针和指针变量 1.2:指针基础知识 1.2.1:指针变量的定义和使用 1.2.2:通过指针间接修改变量的值 1.2.3:指针的大小 1.2.4:空指针与野指针 1.2.4:万能指针 1.3:指针与数组 1.3.1:数组名 1.3.2:指针操作数组 1.3.3:指针的加减运算 1.4:指针基础小结 1.5:总结 1.1:概述 1.1.1:内存 内存含义: 储存器:用来存储程序和数据,辅助CPU进行运算处理的重要组成部分. 内存:

  • C语言操作符基础知识详解

    目录 一.单目操作符: 二.关系操作符 三.条件操作符 四.逗号表达式 五.逻辑操作符 总结 一.单目操作符: !:逻辑反操作符: -:负数操作符: +:整数操作符: &:取地址操作符: sizeof:操作数的类型长度操作符: sizeof(数组名)--数组名表示整个数组,sizeof(数组名)求的是整个数组的大小,单位是字节 例如: int a[10] = { 0 }; printf("%d\n",sizeof(a)); suzeof(a[0]);-->(4) 不同的表

  • C语言编程数据结构基础详解小白篇

    目录 数据结构的基本信息 数据结构 逻辑结构 1,集合结构 2,线性结构 3,树结构 4,图结构或网结构 存储结构 顺序储存结构 链式储存结构 抽象数据类型 介绍 数据结构的基本信息 数据:是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称.如:字符串,实数整数.... 数据元素:是数据的基本单位,在计算机中通常被作为一个整体进行考虑与处理.如组成通讯录的每一个人的信息,数据元素可以完整的描述一个对象. 数据项:是组成数据元素的,具有独立意义的,不可分割的最小单位(也就是

  • 详解C语言初阶基础(2)

    目录 1.选择语句(if) 2.循环 while循环 for循环 do-while循环 补充 总结 1.选择语句(if) 我们先不讲switch,后面会补充.先来对简单地if进行了解. 我们已经知道,计算机的本质是为了服务于人,我们在日常生活中会遇到各种各样的选择,于情于理计算机都应该有选择语句来对应和我们的生活逻辑. 因此 if语句就是做一个选择,对计算机来说,选择只有真假之分,真就是非0(注意不是1,而是非0),假就是0. if(条件),通过对条件的判断来决定来执行哪一个分支,多分支我们可以

  • C语言MFC基础之计算器详解

    目录 基于MFC计算器(基础点) 需求:把计算器运算的过程呈现出来. 基础点 总结 基于MFC计算器(基础点) 主要是在实现MFC计算器的过程中碰到的一些问题,和补充的一些知识. 需求:把计算器运算的过程呈现出来. 想法:利用两个队列,一个存储输入的字符串(表达式),一个存放结果. 分别命名为queue1,和myqueue,让字符串从左到右依次入队列. 但之后按照自己的思路去推演,发现如果进入队列的是1+23,如果下一个字符入队的是"+",那么先计算23的结果入队myqueue中,而q

  • 详解C语言初阶基础

    目录 1.什么是c语言 2.初始化: 3.变量和常量 4.作用域与生命周期 简单阐述: 作用域: 生命周期(存在与消失): 作用域与生命周期的区别 作用域: 生命周期: 5.     为什么c中存在了各种数据类型: 6.常量: 7.c语言的字符串: 8.转义字符(\) 注意: 9.注释: 快捷键 总结 1.什么是c语言 c语言是一门通用计算机编程语言,是一种面向对象的编译型语言,广泛用于底层开发.其设计目的是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何环境便能运行的

  • 详解C语言初阶之数组

    目录 1.数组 1.1数组的概念 1.2数组的定义 a:完全初始化 b:不完全初始化 c:给定元素个数 d:不给定元素个数 1.3数组的下标访问 总结 1.数组 1.1数组的概念 所谓数组(array),就是具有相同数据类型的集合,存放的数据类型即数组本身的类型. 可以发现存储的都是int型 补充 :调试小技巧 调试窗口 (按F5进行调试,打开菜单栏中的调试-窗口-监视-随便打开一个监视窗口,输入arr,将程序运行过arr的初始化即可观察到arr内部进行的初始化) 1.2数组的定义 a:完全初始

  • 详解C语言初阶之函数

    目录 1.main函数 2.自定义函数 2.1  函数的的封装和面向过程的思维 3.函数的组成 3.1函数的命名法 3.2函数的返回值 3.2.1void类型 补充: 3.3形参与实参 总结 1.main函数 第一个函数是我们的main函数,它无处不在,main函数被称之为我们的入口函数,程序在运行时,从main函数进入,从main函数出来,main函数其实就是整个程序功能的集合,所有的功能必须被包含在main里面才可以被运行(预处理命令,宏定义,全局变量什么的当然要优先处理,再次不讨论这些).

  • 图文详解C语言位运算基础知识

    C语言位运算基础知识分享给大家,希望对大家有帮助. 1.   程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说穿了,就是直接对整数在内存中的二进制位进行操作. 2.  与运算:只有前后两个运算数都是 1 的时候结果才是1. 3.  或运算:有1位为1,结果便为1. 4.  异或:不相同则为1. 5.  取反运算:将1变为0,将0变为1. 6.  移位运算:左移则乘2,右移则除2.如果超出边界,则舍弃. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • 详解Go语言如何利用高阶函数写出优雅的代码

    目录 前言 问题 白银 黄金 王者 总结 前言 go项目中经常需要查询db,按照以前java开发经验,会根据查询条件写很多方法,如: GetUserByUserID GetUsersByName GetUsersByAge 每一种查询条件写一个方法,这种方式对外是挺好的,对外遵循严格原则,让每个对外的方法接口是明确的.但是对内的话,应该尽可能的通用,做到代码复用,少写代码,让代码看起来更优雅.整洁. 问题 在review代码的时候,针对上面3个方法,一般写法是 func GetUserByUse

  • 详解C语言中二分查找的运用技巧

    目录 基础的二分查 查找左侧边界 查找右侧边界 二分查找问题分析 实例1: 爱吃香蕉的珂珂 实例2:运送包裹 前篇文章聊到了二分查找的基础以及细节的处理问题,主要介绍了 查找和目标值相等的元素.查找第一个和目标值相等的元素.查找最后一个和目标值相等的元素 三种情况. 这些情况都适用于有序数组中查找指定元素 这个基本的场景,但实际应用中可能不会这么直接,甚至看了题目之后,都不会想到可以用二分查找算法来解决 . 本文就来分析下二分查找在实际中的应用,通过分析几个应用二分查找的实例,总结下能使用二分查

  • 详解HTTP请求与响应基础及实例

    详解HTTP请求与响应基础及实例 一.HTTP的请求与响应 二.HttpServletRequest和HttpServletResponse对象获取HTTP响应和请求 一.HTTP的请求与响应 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议.是客户端和服务器端之间数据传输的格式规范. 通常,由HTTP客户端发起一个请求,服务端一旦收到请求,向客户端返回一个相应(一个请求的发出,有且只有一个响应). (一)

  • 详解C语言 三大循环 四大跳转 和判断语句

    三大循环for while 和 do{ }while; 四大跳转 : 无条件跳转语句 go to; 跳出循环语句 break; 继续跳出循环语句 continue; 返回值语句 return 判断语句 if,if else,if else if else if...else ifelse 组合 if(0 == x) if(0 == y) error(): else{ //program code } else到底与那个if配对 C语言有这样的规定: else 始终与同一括号内最近的未匹配的if语

  • 详解C语言进程同步机制

    本文是对进程同步机制的一个大总结(9000+字吐血总结),涵盖面非常的全,包括了进程同步的一些概念.软件同步机制.硬件同步机制.信号量机制和管程机制,对每种机制结合代码做了详细的介绍,并且对琐碎的知识点和概念解释的非常清晰. ​ 在前面的博客中讲述了进程的状态及其状态的转换,每种状态的含义和转换的原因.同样我们也知道,在OS引入了进程后,可以使系统中的多道程序可以并发的执行,进程的并发执行一方面极大的提高了系统的资源利用率和吞吐量,但是另一方面却使系统变得更加复杂,如果不能采取有效的措施,对多个

随机推荐