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语言很重要,希望大家可以把基础打扎实,在学习的路上继续努力前行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值