C语言基础补习

1.    标识符,变量与常量

1)标识符

标识符的命名规则:

⒈标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线;

⒉C语言中的标识符大小写敏感;

⒊用户自定义的标识符不能与关键字同名;

2)变量

    变量表示数据的属性是可变化的,有数据类型关键字进行定义。

3)常量

常量:在程序执行过程中,其值不被改变的量

(1)直接常量:

直接引用的数字等;

(2)符号常量:

使用标识符来代替一个数字(常见的:宏定义常量和 常变量)

(3)常变量

常变量:变量值不可改变的量,使用const修饰

const int a = 10;//定义一个常变量

 

2.    关键字

1) 基本数据类型关键字

void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。

char:字符型类型数据,属于整型数据的一种。

int:整型数据,表示范围通常为编译器指定的内存字节长。

float:单精度浮点型数据,属于浮点数据的一种。

double:双精度浮点型数据,属于浮点数据的一种。

//_Bool:布尔型

//_Complex:复数的基本类型

//_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数

//_Generic:提供重载的接口入口

2)类型修饰关键字

short:修饰int,短整型数据,可省略被修饰的int。

long:修饰int,长整型数据,可省略被修饰的int。

//longlong:修饰int,超长整型数据,可省略被修饰的int。

signed:修饰整型数据,有符号数据类型。

unsigned:修饰整型数据,无符号数据类型。

3)复杂类型关键字

struct:结构体声明。

union:联合体声明。

enum:枚举声明。

typedef:声明类型别名。

sizeof:得到特定类型或特定类型变量的大小。

//inline:内联函数用于取代宏定义,会在任何调用它的地方展开。

4)存储级别关键字

auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。与static相反。当变量未指定时默认为auto。

static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。

register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。

extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

const:指定变量不可被当前线程改变(但有可能被系统或其他线程改变)。

volatile:指定变量的值有可能会被系统或其他线程改变,强制编译器每次从内存中取得该变量的值,阻止编译器把该变量优化成寄存器变量。

5)流程控制关键字

(1)跳转结构

return:用在函数体中,返回特定值(如果是void类型,则不返回函数值)。

continue:结束当前循环,开始下一轮循环。

break:跳出当前循环或switch结构。

goto:无条件跳转语句。

(2)分支结构

if:条件语句,后面不需要放分号。

else:条件语句否定分支(必须与if连用)。

switch:开关语句(多重分支语句)。

case:开关语句中的分支标记,与switch连用。

default:开关语句中的“其他”分支,可选。

for:循环(K&R时期引入)

while:循环(K&R时期引入)


3. 数据类型转换

1)隐式类型转换(自动转换)

存储长度较短的转换成存储长度较长的,且不丢失数据

char--->short--->int--->unsignedint(--->long--->unsigned long)--->double

2)强制类型转换

强制类型转换:人为地将某类型转换为另一类型

强制类型转换符:()括号


4.运算符

1)算数运算符

符号及含义:+(加) -(减) *(乘) /(除) %(取余)

数目:双目运算符

结合性:自左至右

优先级:+和-:4级。*和/和%:3级

2)关系运算符

符号及含义:>(大于) <(小于) >=(大于等于) <=(小于等于) ==(判等)!=(不等)

数目:双目运算符

结合性:自左至右

优先级:>< >= <=:6级。==和!=:7级

3)自增运算符与自减运算符

符号及含义:++(自增) --(自减)

数目:单目运算符

结合性:自左至右 或 自右至左(取决于运算符位置)

优先级:2级

4)逻辑运算符

符号及含义:&&(逻辑与) ||(逻辑或) !(逻辑非)

数目:!为单目运算符,&&和||为双目运算符

结合性:!为自右至左,&&和||为自左至右

优先级:!:2级。&&:11级。||:12级

5)赋值运算符及复合赋值运算符

符号及含义:=(赋值) +=(加后赋值) -=(减后赋值)*=(乘后赋值) /=(除后赋值) %=(取余后赋值) <<=(左移后赋值) >>=(右移后赋值) &=(按位与后赋值) ^=(按位异或后赋值) |=(按位或后赋值)

数目:未知(取决于是否存在多重赋值)

结合性:自右至左

优先级:14级

6)条件运算符

符号及含义:?:(判断?前表达式是否成立,若成立取:前表达式,否则取:后表达式)

数目:三目运算符(C语言中唯一的三目运算符)

结合性:自右至左

优先级:13级

7)长度运算符

符号及含义:sizeof()(计算括号内数据类型或表达式的大小)

数目:无

结合性:无

优先级:2级

8)位运算符

(1)按位运算符

符号及含义:&(按位与) ^(按位异或) |(按位或) ~(按位取反)

数目:&和^和|:双目运算符。~:单目运算符。

结合性:&和^和|:自左至右。~:自右至左

(2)移位运算符

符号及含义:<<(左移) >>(右移)

数目:双目运算符

结合性:自左至右

9)逗号运算符

符号及含义:,(分隔作用)

数目:未知

结合性:自左至右

优先级:15级(最低)

3.    基本逻辑结构

C语言程序有3种基本结构:顺序结构、选择结构和循环结构

1)选择结构:

(1)if-else结构

(2)switch-case结构

switch()语句的一般形式如下:

switch(表达式)

{

case 常量1:

语句1;

break;

case 常量2:

语句2;

break;

……//多个case结构

case 常量n:

语句n;

break;

default:

语句n+1;

}

2)循环语句主要有3种:while()循环;do-while()循环和for()循环


5.  数组与字符串

   1)一维数组

数组名代表数组起始地址,

计算数组所占内存空间的大小:sizeof(a);

计算数组长度:sizeof(a) / sizeof(a[0])

2)二维数组

3)字符串

字符串:由双引号""引起来的字符序列。

字符串中每个字符都视为一个字符型数组的元素,存储占1字节。

字符串的结束标志是'\0'


6. 字符串处理函数

字符串连接函数:strcat(),

字符串复制函数:strcpy()和strncpy()

字符串比较函数:strcmp()

测字符串长度函数:strlen()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值