C语言基础语法(初学者必看)
C语言的组成
大家都在学习C语言,那大家有没有想过C语言是由什么组成的?
我所理解的就是C语言是由若干文件构成,比如在刚开始写代码时就必须包含相应的头文件,而文件又由若干函数组成,函数分为库函数和自定义函数,函数有函数头和函数体。
函数头:由四部分组成 返回值类型 函数名 ()【小括号是函数的标志】 以及()里存放的形参。
函数体:{}【花括号是函数体的标志】+语句
语句有分为注释语句、定义语句、执行语句
注释语句:/*…**/为读者能够很好的理解所写代码做的一些解释,不编译执行。
sum(int a,int b)/*求和函数用来计算a加b的和*/
定义语句:一般放在函数的第一行,为变量分配相应的存储空间,编译时就被执行掉了
int a
注意:上面这个代码是错的,因为没有加分号,分号是语句的标志,只要是语句末尾一定不要忘记加分号。
执行语句:就是对数据所做的动作,也可以这么理解,除过上面所提这两者语句外,其他语句都为执行语句
数据与数据类型
C语言的数据类型有四大类,分别为基本类型(整型、实型、字符型、枚举),构造类型(数组类型、结构体类型、共用体类型)、指针类型(*)、空类型(void)。
数据也分为四大类,分别是常量、变量、表达式、函数(调用具有一定功能的函数作为运算对象)
常量:值不发生变化的量。
变量:值随时随地改变的量
表达式:用运算符将数据连接起来的合法式子
常量又分为整型常量、实型常量、字符型常量、字符串型常量
整型常量:三种形式(十进制、八进制、十六进制)
实型常量:两种形式(小数形式、指数形式)
小数形式:由数字和小数点组成(123.8 .456 0.458都是合法的实型常量 )
指数形式:用“E“或“e”后紧跟一个整数表示以10为底的幂数(1.23E+5)
注意:字母E或e前后必须都要有数字,且后面必须是整数(1.5E不合法)
字母E或e的前后及各个数字之间不能有空格
字符型常量:四种形式(常规、转义、八进制、十六进制)【单引号是字符的标志】
常规:一对单引号括一个(必须是一个)字符(‘A’)
转义:为什么需要转义,键盘上的一些按键(TAB等)不是一个单一的字符,只有通过\来进行转义才可以表达这些按键的控制功能(‘\n表示n不再是字符n而是换行’)
八进制:‘A’等价‘\101’
十六进制:‘A’等价‘\x41
字符串常量:由一对双引号括起来的若干(0个或以上)个字符(“如ASD”)【双引号是字符串的标志】
注意:每一个字符串常量都有一个字符串结束符“\0"
常量必须存放到变量中,因为只有变量才会为其分配相应的存储空间。那么问题来了,C语言没有字符串变量,现在字符串常量该如何存储到计算机当中呢?
C语言提供了两种途径来进行字符串常量的存放,一是字符数组、二是字符指针。
变量:用来存放常量
变量定义格式:数据类型名 变量名列表
变量的使用规则:先定义后使用,变量名属于用户自定义标识符,应当遵守用户标识符的命名规则
在同一函数体{}中不能定义同名变量
同时定义多变量需用逗号分隔
变量可以赋初值(初始化)无初值为随机值
标识符
有了变量那么在我们定义变量给变量取名字时需要遵循什么规则呢?
在C中标识符分为以下三类
保留字(关键字)
保留字总共32个,具有固定的含义
预定义标识符:预先定义并具有特定含义的标识符(比如 scanf printf)
用户自定义标识符:由用户根据需要定义的标识符如(变量名、数组名、函数名等)
标识符的命名规则:字母下划线开头,后面为字母数字下划线
表达式
C语言有极其丰富的运算符,导致有不同的表达式。那么什么叫做表达式呢?
表达式:用运算符将数据连接起来的合法式子(单独的常量、变量、函数调用都是C语言合法表达式)
运算符:具有一定运算功能的符号,具有三个属性 功能、优先级、结合性(运算方向)
表达式求值:挑运算符先计算优先级高的,同级情况下考虑结合性
1、算数运算符及算数表达式
算数运算符:+、-、*、/、% (加减四级 乘除求余三级)
注意:%两边运算对象必须为整型 如7.2%3、4/3.0都是不合法的表示
求值方法:先忽略负号不计求出余数,再将所得余数的符号定成与被除数相同的符号
17%3=2
17%-3=2
-17%3=-2
-17%-3=-2
2、赋值运算符及赋值表达式
优先级14级 结合型(右)
格式:变量名=表达式
赋值运算符的功能:将表达式的值赋给(“=”)左边的变量【如a=3+2先计算3+2为5然后将5赋给变量a】
凡是表达式都有一个唯一确定的值
赋值表达式的值就是赋值运算符左边变量的值
a=b=c=1+3 /* +优先级高于= 先计算1+3结果为4,将4赋给c 等价于a=(b=((c=1+3)))*/
注意:赋值运算符左边只能是一个变量,右边为任意合法表达式即可
实型数据赋给整型变量时,实型小数舍去,整型数据赋给实型变量时系统自动将整型数据转化为实型数据
a+b=3 /*非法表达式 */
a=6 /*合法表达式 */
3、复合赋值运算符
10种(+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=)14级 结合性(右)
注意:复合赋值运算符的两个运算符中间不能有空格
a/=7+3/* 等价于a=a/(7+3)意思就是说如果右边为表达式的话就加小
括号否则会出现逻辑错误*/
4、自增自减运算符
2级 结合性(右)
操作对象只能用于变量不能用于常量或表达式
求值方法如下
如int a=3 则表达式的值分别为|表达式的值| 变量的值 |a++| 3 | 4 | /* 说明:++、--在前,先给变量加减一,在给表达式标值 */++a| 4 | 4 | /* ++、--在后先给表达式标值 ,在对变量加减一*/a--| 3 | 2 |--a| 2 | 2 |
5、逗号运算符及其表达式(顺序求值表达式)
格式:表达式1,表达式2,表达式3,……,表达式n
功能:逗号表达式的值就是表达式n(最后一个表达式的值)求值顺序是从左到右依次求解
x=(y=3,y+1) /*首先将3赋给y,然后执行y+1操作,将结果4赋给x *//*注意:x赋值右边的表达式要用括号括起来,因为逗号运算符的优先级别低于赋值运算符 */
6、强制类型转换(显式转化)
格式:(类型名)表达式 或(类型名)(表达式)
利用强制类型转化运算符可将一个表达式的值转化为指定的类型
float x=123.45,y=0.5;/* 注意这种格式是错的int(x)*/
(int) x+y=123.5 /*先将x转化为int型123,在与y求和结果为123.5*/
(int)(x+y)=123 /* 先计算x+y的值为123.95然后转化为整型结果为123*/
进行强制类型转换,得到的是一个中间值,而原来表达式或变量的类型未发生改变
如若变量x为int型,则表达式(float)x的结果是一个float型,但是x还是int 型
总结:以上是C语言的基本语法和基础,知识点虽然有点枯燥无味,但是是我们后面要学的基本结构的基础,这一部分内容对大家学好C语言很重要,希望大家可以把基础打扎实,在学习的路上继续努力前行。
C语言基础语法(初学者必看)相关推荐
- STM32中C语言知识点:初学者必看,老鸟复习(长文总结)
说在前面的话 一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,再去学单片机,我以前刚学单片机的时候也有这样子的想法. 其实C语言是可以边学单片机边学的,学单片机的 ...
- C语言入门,C语言学习方法,初学者必看
学C语言的朋友应该首先了解C语言关键的核心概念(结构化.三个执行流程.优先级.指针.文件.共用体.函数.作用域.重载等 ),只有弄明白了这些才能在今后的学习中游刃有余的把握C语言的精髓.这几个概念就像 ...
- 微信小程序的基础语法(必看)
1. 简述微信小程序的运行机制 热启动 :假如⽤户已经打开了某个⼩程序,在⼀定时间内再次打开⼩程序的话,这个时候我们就不再需要重新启动了,这需要把我们的后台打开的⼩程序切换到前台来使⽤. 冷启动:⽤户 ...
- Go语言基础语法讲解与学习
Go语言基础语法讲解与学习 1 Go语言基础知识介绍 介绍Go语言之前,我们先了解一下有哪些开源项目是Go语言开发的,其中就包括 Docker.Go-Ethereum.Thrraform 和 Ku ...
- JavaScript基础教程——入门必看篇
JavaScript他是一种描述性语言,其实他并不难学,只要用心学,一定会学好,我相信大家在看这篇文章的时候,一定也学过HTML吧,使用JavaScript就是为了能和网页有更好的交互,下面切入主题. ...
- lua菜鸟教程_初学者必看:Lua入门学习教程
Lua入门学习教程是本文要介绍的内容,主要是来对Lua入门的一个学习,Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言.不幸的是,网上很少有关于这个语言的在线教程.我主要通过阅读其源代码来了 ...
- 【Go编程语言】 Go语言基础语法
Go语言基础语法 文章目录 Go语言基础语法 一.注释 1.单行注释 2.多行注释 二.变量 1.变量的定义 2.变量的初始化 3.理解变量(内存地址) 4.变量交换 5.匿名变量 6.变量的作用域 ...
- 一起学Go吧! Go语言基础语法篇二
文章目录 前言 Go 语言指针 Go语言结构体 Go语言切片(Slice) Go 语言范围(Range) Go 语言Map(集合) Go 语言类型转换 Go 语言接口 Go 错误处理 Go并发 通道( ...
- 视频教程-Python零基础入门高薪必看动画课程-Python
Python零基础入门高薪必看动画课程 从事多年的Web应用开发,拥有10余年一线开发经验和教学经验.曾在中国银行从事数据采集服务,现专注于Python教学相关工作.参与过O2O外卖平台系统.微信商城 ...
- Go语言基础语法--注释、基础结构2
章节 GO语言基础语法--注释.基础结构(重要) 1.GO语言基础语法---注释.基础结构 //程序所属的包,且必须在源文件代码第一行 package mainimport "fmt&quo ...
最新文章
- 「AI不惑境」残差网络的前世今生与原理
- Spring Cloud构建微服务架构:分布式配置中心(加密解密)
- 如何关闭jdk自动更新提示
- python中变量名存储在哪里_python – 如何在内部存储和映射变量名称?
- python中range语法
- Android开始中的OOM异常
- 自动聊天机器人项目班
- ajax获得excel文件流在前端打开_Javascript前端开发:jsonp的原理你真的懂吗?
- 支持drupal的空间
- AOP 面向切面编程、拦截器
- javascript的offset、client、scroll使用方法
- 源码安装lamp以及论坛
- 大麦网抢票python代码_damai_ticket
- windows虚拟机dhcp服务器,无法访问虚拟机中的DHCP服务器
- App Links(APP关联)
- MyApps平台为政企数据保驾护航,筑牢办公安全防线
- 使用React创建一个web3的前端
- cad渐变线怎么画_CAD中的图案渐变功能怎么使用 涨知识了
- 【代数之美】线性方程组Ax=0的求解方法
- 同济大学符长虹教授作“基于计算机视觉的无人飞行器自主导航研究与应用”为题的报告
热门文章
- 初学操作系统概论小结
- 【实战系列】intel 8代I5 8400+H310完美装WIN7系统
- MaxScript入门指引系列(五)数组和Visual MaxScript editor
- linux下ftp搭建流程
- Python 函数两个列表对应相乘
- Javaweb google身份宝验证
- 使用Photoshop给Premiere批量添加对白字幕听语音 |浏览:25974|更新:2013-12-23 23:18|标签:photoshop premiere 使用Photoshop给Pre
- 定制材料 GPTMS修饰的纳米二氧化硅(GPTMS-SiO2)/C18键合纳米金修饰二氧化硅颗粒/二氧化硅修饰咪唑型离子液体
- STM32__04—PMW呼吸灯
- 宝宝为什么不吃奶粉,奶爸必读文章