C语言笔记(关键字篇)

一、c语言的词法符号:

1、关键字(32个)

存储类型(4):auto、static、extern、register

auto:c语言默认的存储类型;

static:静态存储类型

extern:当外部文件需要使用时用extern声明

register:将变量由内存调入寄存器中,不用每次访问都进入内存,提升效率

注:这里说到static,顺便写一下对局部、全局变量,静态与非静态变量的理解

普通局部变量:作用域函数内部,生命周期是函数执行一次的时间。

静态局部变量:作用域函数内部,生命周期是整个程序执行的时间。

普通全局变量:作用域整个程序所有语句,生命周期整个程序执行时间。

静态全局变量:作用域是自身源文件内部,生命周期是整个程序执行时间

这里简单类比一下:

普通局部变量像是你家买的一次性纸杯,只给你自己家里人用,用一次就回收,再用下一只纸杯。

静态局部变量像是你家买的正常的杯子,也是只有你自己家用,但可以一直用,每次用都是那一个

普通全局变量像是公共停车位,你可以来他也可以来

静态全局变量像是小区内部停车位,只给小区内部的居民使用

数据类型(8):char(1字节)、short(2字节)、int(4字节)、long、float(4字节)、double(8字节)、signed、unsigned

数据类型不在过多赘述,这些应该没什么问题

注:double:有效数据15~16位

        float   : 有效数据6~7位

选择结构(5)if 、else、 switch、case、default

这里说一下if else,那三个留到后面说

if(判断条件){ 语句块;}else{  语句块;}if(判断条件){ 语句块;}else{  语句块;}    

主要用于判断条件成立执行if内部语句块,不成立执行else内部语句块,还可以写成这种形式

if(判断条件){ 语句块;}else if(判断条件){   语句块;}else{  语句块;} 

需要多种情况判断时else if可以写多个,不需要时也可以只写if,其他可省略(包括else)

循环结构(6)while、for、do、break、continue、goto(几乎不怎么用到)

先说说while循环:while(判断条件){ 语句块;}     

当判断条件为真时一直重复执行语句块,知道判断条件为假退出循环,如果一开始while中判断条

件就为假那直接结束循环,但有时我们还想先执行一次循环在判断怎么办?这就靠

do{语句块;}while(判断条件); 循环了,它会先执行语句块,在进行判断。

再说说for循环

for(1初始化;2测试条件;3更新){4语句块;}    执行顺序应该是 12 432 432 432知道不满足测

试条件结束循环

再来说说break和continue

break是退出循环的意思,continue则是退出当前循环,假设用for进行循环5次,执行第一次循环时遇到break,直接退出for循环,for循环就结束了,不会再执行2、3、4、5次了,而continue则只是跳出这一次循环,执行第二次循环

这时就可以说说switch那三个关键字了,它们和break通常一起使用

通常是swtich(整型表达式){case 常量1:语句;break;case 常量2:语句;break;.....以此类推;default:语句;break;}

举个例子:

#include<stido.h>
int main(void){
    int id=0;
    printf("请输入代表id号\n");
    scanf("%d",&id);
    switch(id){
    case 0: printf("小红\n");break;//输入0输出小红
    case 1: printf("小李\n");break;//输入1输出小李
    default: printf("没有此人\n");break;//输入其他数字输出没有此人
    }
    return 0;
}
//注:如果不写所有的break;输入1的话会输出小李和没有此人,从case1开始向下执行

用来列举多种情况,每一种情况发生执行它相应的语句,然后break;如果没有break则会在发生情况的语句块依次向下执行,default用来处理没有列举的情况;

其他变量(6)void、typedef、volatile、const、sizeof、return

void也叫无类型,不同于char按一个字节访问,int是按四个字节访问,也可以把void申请的变量看成只申请不访问

typedef是重命名,例如typedef int pin_t;那么pin_t将相当于int使用了

volatile是易变的意思,修饰变量是要求每次读取变量时都从寄存器去读取,不要编译器进行优化,一般用在多线程共享变量的时候。

const关键字代表的是可读的意思,变量被修饰后不能被修改,只可读

例如const int a=5;修饰后a不能再被赋值成其他值,但可以改变a的地址来改变变量的值

但如果const修饰地址时,那地址不能改变,但是值可以改变

sizeof关键字主要是用来得到类型的大小,sizeof(int),因为int是四个字节,所以得到的是4;

return就是结束当前函数并返回一个值,如果后面不接任何东西,那将会返回一个随机值

构造类型(3)struct(结构体)、union(联合)、enum(枚举)

这三个更像是构造了新的数据类型

struct(结构体)类型存储区里可以包换多个类型的存储区

结构是:struct 结构体名{成员变量;}

例如

struct person{int age; float height; char name[10]; };

struct person per;//per就相当于一个新类型,里面包含一个int类型,一个float类型,一个char类型数组;访问这些成员变量只需要 per.age,per.height,per.name[],即和正常的变量与数组一样使用,但由于申请结构体变量时每次都要带着struct person过于繁琐,还可以用typedef进行重命名

typedef struct person{
        int age;
        float height;
        char name[20];
}p_t
//struct persong per;
p_t per={30,1.85f,"peng");//重命名后和上面申请结构体变量是一个意思,并初始化结构体 

union创建一个联合体类型,也叫共用体,实际上就是他里面的所有成员变量共用一块地址,以前往往是为了节省空间使用,但由于现在计算机的内存已经不是问题了,它使用的频率也越来越少了,下面提供一个使用union来看大端小端的方法

所谓大端实际上就是高字节存在低地址,小端是低字节存在高地址;

typedef union{
        short a;
        char b;
}u_t;
int main(void){
        u_t u;  
        u.a=0x0001;
        (u.c)?printf("small\n"):printf("big\n");
        return 0;
}
由于这两个成员共用一个地址

enum是枚举,也可以创建新的数据类型,就是整数类型存储区,数字范围有限,使用enum声明枚举,计算机会给每个成员变量分配一个对应整数,默认从0开始多个连续非负整数,称为枚举值,可以当做整数使用,也可以给成员变量加缺省值,如下

enum season{CHUN,XIA,QIU,DONG};
这时CHUN是0,XIA是1,以此类推
但是如果
enum season{CHUN,XIA=5,QIU,DONG};
这时CHUN是0,XIA是5,QIU是6,DONG是7

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值