Linux c语言

1.语法符号

词法符号若干字符组成的有意义的最小语法单位。按照词法符号在程序中的作用,可以分为:关键字、 标识符、运算符、分隔符和标点符号。

1.1关键字

1.存储类型:

auto  static   extern   register

2.存储类型:

char(字符型) short(短整型) int(整型) long(长整型) float(浮点型) double(双精度浮点型) unsigned(无符号) signed(有符号)struct(结构体) union(共用体)enum(枚举)void(空类型)

3.控制语句:

if(条件语句) else(条件语句中否定分支) while(循环语句的循环条件) do (循环语句的循环体)for(一种循环语句) switch(开关语句) case(开关语句分支)default(开关语句中其他分支) break(中断循环) continue(继续下一轮循环) goto(跳转) return(返回)

4.其他:

sizeof(计算数据所占空间大小) const(声明只读变量)typedef(重命名) volatile(防止被编译器优化)

1.2标识符

C语言的命名规则如下:

1) 标识符由一个或多个字母、数字或下划线组成

2)标识符的第一个字符必须是字母或下划线

3)标识符不能与任何关键字相同

1.3运算符

算术、逻辑、关系、位、赋值、其他运算符

1.算术运算符:+,-,*,/,%,++,--

2.逻辑运算:!,&&,||

3.关系运算符:<,>,>=,<=,==,!=

4.位运算符:&,|,~,^,<<,>>

5.赋值运算符:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=

6.其他运算符:三目运算符,sizeof()

1.4分隔符

是用来分隔其他的词法符号,主要包括: 空格符、制表符、换行符号、注释。

通过对分隔符的恰当运用,使得代码的外观格式更为清晰易读,还可以帮助分析程序中的语法错误

1.5标点符号

C语言中的标点符号有逗号、分号、冒号、花括号、圆括号。标点符号的作用与分隔符相似,但用法非常严格,有着明确的语法规定。有些标点符号出现在表达式中时,当作运算符使用。

(1) 逗号

在定义变量语句中,用于分隔变量名

在函数的参数表中,用于分隔函数参数

(2)分号

用于表达式语句的结束

在for循环语句中,分隔括号内的三个表达式

单独出现,构成一条空语句

(3) 冒号

用于三目运算符

用于switch case语句中case块中

(4) 花括号

用做枚举类型定义的开始和结束

用做数组初始值定义的开始和结束

用做函数体的开始和结束

用做语句块的开始和结束

用做结构类型定义块的开始和结束

(5) 圆括号

用在函数头定义中,作为参数表的开始和结束

用在流程控制语句中,作为条件表达式的开始和结束

用在函数调用中,作为参数表的开始和结束

运算符&表达式&数据类型 

1.变量和基本数据类型

1.1变量的概念

变量就是在程序中发生变化的量,变量有类型。

变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

1 字节(byte) = 8 位(bit)

1.2定义格式

类型

存储大小

值范围

char

字符类型

1 字节

-2^7 到 (2^7-1)

unsigned char

无符号字符类型

1 字节

0 到 (2^8-1)

int

整数类型

4 字节

-2^31 到 (2^31-1)

unsigned int

无符号整数类型

4 字节

0 到 (2^32-1)

short

短整型

2 字节

-2^15 到 (2^15-1)

unsigned short

无符号短整形

2 字节

0 到 (2^16-1)

long

长整型

4 字节

-2^31 到 (2^31-1)

unsigned long

无符号长整形

4 字节

0 到 (2^32-1)

float

单精度浮点型

4字节

有效数据6-7位

double

双精度浮点型

8字节

有效数据15-16位

64位操作系统:long类型是8字节

1.3初始化格式

既可以直接初始化   如:int   a=10;

也可以先定义再赋值  如:int  a;

                                           a=10;

1.4局部变量和全局变量

1.生命周期

2.作用域

3.五个区域:局部变量在栈区

全局变量在全局区

局部变量和全局变量的区别

局部变量全局变量
1.定义位置在函数体内在函数体外
2.存储位置栈区全局区
3.生命周期同函数体共存亡同整个程序共存亡
4.作用域作用域函数体内部作用域整个程序
5.初值未初始化,值是随机未初始化时,值是零

2.常量

2.1常量的定义

程序中不会发生变化的值,存在于常量区

2.2常量的分类

2.21字符型常量

类型为char   从ascii码表中全是字符型常量 如:'A',字符型常量是用''括起来的

原码反码补码

  1. 最高表示符号位正数01
  2. 正数原码反码补码都是一样的
  3. 负数补码计算
  • 原码就是数值前面直接符号表示
  • 反码等于原码符号位不变其余按位取反
  • 补码等于反码加一

例如 -5

原码1000 0101

反码1111 1010

补码1111 1011

2.2.2字符串常量

用""括起来,每个字符串常量都有'\0'作为字符串结尾的标志(虽然有但不显示别吃亏了)

如"hello"

2.2.3整型常量

整型就是类型为整数的常量,包括从负数到零到正数的所有整数。可以用二进制、八进制、十进制和十六进制表示。

2.2.4浮点型常量

浮点型常量就是类型浮点常量包括负数正数所有浮点数

float double

2.2.5指数常量

科学计数法表示

如:3*10^8 --> 3e8

2*10^-12 --> 2e-12

2.2.6表示常量(宏定义)

宏定义起到标识作用

(1)只是单纯的进行文本替换,在预处理的时候进行。

(2)遵循标识符的命名规则

(3)一般大写表示

格式 #define 宏名 常量表达式

特点只能单纯替换不要进行手动运算 (原样替换,替换完了再计算)

如:#define ONE 1

3.运算符和表达式

3.1算术运算符

/:整数相除   向下取整

%:只能用于整数运算取余     如12%3=2

++:自增(这个挺坑得多练)

--:自减(同上)

3.2赋值运算符

=    +=    -=    *=     /=

3.3关系运算符

> < <= >= == !=

用来判断两者关系返回10

运算符

名称

示例

功能

缩写

<

小于

a<b

a小于b时返回真,否则返回假。

LT

<=

小于等于

a<=b

a小于等于b时返回真,否则返回假。

LE

>

大于

a>b

a大于b时返回真,否则返回假。

GT

>=

大于等于

a>=b

a大于等于b时返回真,否则返回假。

GE

==

等于

a==b

a等于b时返回真,否则返回假。

EQ

!=

不等于

a!=b

a不等于b时返回真,否则返回假。

NE

3.4逻辑运算符

&&     ||     !

&&:全真为真    有假就假

||:一真全真      全假则假

!:真的变假    假的变真

截断法则

逻辑||运算中 如果前面表达式后面表达式不执行

逻辑&&运算中 如果前面表达式为假后面的表达式不执行

3.5位运算符

&   位与

全1则1 有0就0

1111 0101&1111 1101 =1111 0101

|    位或

有1则1 全0为0

1111 0101 | 1111 1101=1111 1101

^    异或

不同为1  相同为0

1111 0101 ^ 1111 1101=0000 1000

~   取反

按位取反

0111 0101 ~ 1000 1010

              原码                        反码                                               补码

正数   本身                        本身                                                本身

负数   本身                         符号位不变其余按位取反           反码+1

~15

正数原码0000 1111

正数补码0000 1111

取反~ 1111 0000

~-1:

原码 1000 0001

反码 1111 1110

补码 1111 1111

~ 0000 0000

<<左移

左移几位,右边补几个零

8<<2 = 32: 1000左移两位得到100000

-5<<3:

-5原码1000 0101

反码: 1111 1010

补码 1111 1011

<<3:(111)1101 1000(-40)

1010 0111 (符号位不变,其余按位取反)

1010 1000 (再上一步基础上+1,得到-40的原码)

 右移>>

几位左边几个符号位正数0负数1

置一公式:a    |     (1<<n)

置零公式: a    &  (~(1<<n))

3.6特殊运算符

三目运算符:表达式1?表达式2:表达式3

求解表达式1如果结果为真(非0)表达式2作为整个表达式取值否则(表达式1结果为假也就是0)那么表达式3的值作为整个表达式结果

sizeof运算符格式

sizeof()

  • 25
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值