C语言第一课时

本文介绍了C语言的基础知识,包括main函数的作用,printf库函数的使用,数据类型(如char,int,float等),变量的定义、分类、使用、作用域和生命周期,以及常量、字符串、转义字符和注释。还涉及了选择和循环语句,函数,数组,操作符,关键字如typedef、static和指针的概念。
摘要由CSDN通过智能技术生成

1.1第一个C语言程序

main函数是一个主函数,一个工程只有一个主函数

printf-库函数,在屏幕上打印信息的意思。printf使用需要打招呼-(#include<stdio.h>)

#include<stdio,h>
int main()
{
printf("hehe\n");
return 0;
}

 1.2数据类型         

  sizeof的单位是字节-byte

char                         //字符数据类型 一个字节

eg:char ch ='a'

short                       //短整型  两个字节

~short num=10

int                          //整型  四个字节

~int age=20

long                       //长整型 四个字节

long long               //更长的整型 八个字节

float                      //单精度浮点数 四个字节

~float weight =55.5

double                 //双精度浮点数 八个字节

%d -整型

%f-float

%lf-double

1.3变量、常量

1.3.1定义变量的方法:

语法形式为type + name 如上eg

定义变量基本规则如下:

1)只能由字母(包括大写和小写),数字,下划线组成;

2)不能以数字开头;

3)长度不能超过63个字符(这纯纯抬杠,纯路人,没必要);

4)区分大写,小写

5)变量名不能使用关键字

6)变量的名字尽量有意义(提醒我们要了解部分英语单词)

1.3.2变量的分类

全局变量-外部定义的

局部变量-内部定义的

#include<stdio.h>
int global=2023;//全局变量
int main()
{
int local=2022;局部变量

int global=2022;
printf("global=%d\n",global)
return 0
}

经试验得知-当局部变量和全局变量名字冲突的情况下局部变量优先

1.3.3变量的使用

#define_CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a=0;
int b=0;
int sum=0;
scanf("%d %d",&a,&b);
sum=a+b
printf("sum=%d\n",sum)
return 0
}

scanf函数是输入函数

printf函数是输出函数

若没有第一行代码则会出现警告。

为什么会出现这个警告呢?是因为在vs中输入函数,人家自己有定义是scanf_s,而用scanf函数不安全

当然,我们还有其他方法来进行解决这个警告。

第一种方法很简单,就是直接把scanf改成scanf_s,这样vs就不会报错了,这种方式简单快捷,但直接复制粘贴后在别的编译软件上无法直接使用。因为scanf_s函数是vs编译提供的,不是C语言标准规定的。

第二种方法就是用图示第一行代码的方法来进行的

第三种方法是一劳永逸的,首先,你需要在你的vs文件夹中找到这么一个叫newc++file.cpp的文件,在文件中写入#define _CRT_SECURE_NO_WARNINGS,保存关闭即可,以后每当你打开vs,新建项目的时候,第一行就会自动出现这行代码。

1.3.4 变量的作用域和生命周期

作用域相当于数学上的定义域,即限定一段代码中所用到的名字的可用性的代码范围就是这个名字的作用域。

局部变量的作用域是变量所在的局部范围

全局变量的作用域是整个工程

生命周期是变量的创建到变量的销毁之间的一个时间段

局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束

全局变量的生命周期是:整个程序的生命周期

1.3.5常量

c语言中常量分为四种

1.字面常量

2.const修饰的常变量

 const 修饰的常变量在C语言中只是在语法层面限制了变量不能直接被改变,但是他本质上还是一个变量,所以叫常变量。

int main()
{
const int num=10;//num就是常变量-具有常属性(不能被改变的属性)
num=20;//因此这样写是不行的
print("num=%d\n",num);
int arr[10]={0};//10个元素
const int n=10;
int arr2[n]={0};//n是变量,这里是不行的
return 0;
}

3.#define定义的标识符常量

#defineMAX 10000
int main()
{
int n=MAX;
printf("n=%d\n",n);
return 0
}

4.枚举常量--可以一一列举的常量

enum Sex
{
//这种枚举类型的变量的未来可能取值
MALE,
FEMALE,
SECRET
};
int main()
{
enum Sex s=MALE;
return 0;
}

1.4字符串+转义字符+注释

1.4.1字符串

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串 内容。

下面让我们来看一下\0的作用

如上代码所示arr2的数组没有\0,因此后面会出现一些乱码。

我们可以在后面自己加上\0就不会出现乱码了。

1.4.2转义字符

  转义字符顾名思义就是转变原来的意思,是为了防止一些符号写在一起时,编译器误解他们的意思。下面,我们来进行介绍几个常用的转义字符。

再比如我们要在屏幕上打印一个目录    c:\code\text.c

它的实际运行结果如下:

这时候我们就要用到转义字符了

下面介绍几个转义字符

转义字符释义
\?在书写中连续多个问号时使用,防止他们被解析成三字母词
\"用于表示一个字符串内部的双引号

\'

用于表示字符常量
\\用于表示一个斜杠
\n换行
\b退格符
\f进纸符
\dddddd表示1-3个八进制的数字。如:\130 
\xdddd表示2个十六进制数字。如\x30 

下面是一道经典的题  

问共有几个字符

答案是14

1.4.3注释

代码中有不需要的代码可以删除也可以注释掉。

代码比较多、复杂的时候可以加注释。

C语言注释风格:/*    */  

缺陷:不能镶嵌注释

C++语言注释风格://

注释一行也可多行

1.5选择语句

 if else语句在C语言中属于选择结构。

1.6循环语句

while语句-讲解

for语句

do ... while语句

他们有一些区别使得他们适用的场景不太相同,如果已知循环的次数用for循环,如果不知道循环的次数用while循环,如果想要先循环一次则用do while循环。

while循环示例

1.7函数

 在数学中,函数是描述变量之间的关系,在C语言中,我们用函数其实也是定义一个关系。

 

函数的特点是简化代码,代码复用。

1.8数组

1.8.1数组定义

数组:一种相同类型元素的集合。

数组可以初始化也可以不完全初始化

//完全初始化
int arr[3]={1,2,3};
//不完全初始化
int arr[3]={0};

1.8.2数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。 数组可以通过下标来访问。

如上图红色标记即代表下标。

1.8.3数组的使用

#include<stdio.h>
int main()
{
int i=0;
int arr[10]={1,2,3,4,5,6,7,8,9,10};
for (i=0;i<10;i++)
{
printf("%d",arr[i])
}
printf("\n");
return 0;
}

1.9操作符

算术操作符

+ -  * / %(取模是%是除得到的余数)

//除号的两端都是整数的时候,执行整数除法,如果两端只要有一个浮点数 就执行浮点数除法

取模操作符两端必须是整数

移位操作符

>> <<

位操作符

& ^ |

赋值操作符

=  +=   -=   *=  /=  &=  ^=   |=  >>=   <<=

单目操作符

前置++:先++,后使用

后置++:先使用,后++

关系操作符

 逻辑操作符
&&               逻辑与                                                  全真为真
||                  逻辑或                                                  全假为假
条件操作符

exp1 ?  exp2 : exp3

逗号表达式(用逗号隔开的一串表达式)

逗号表达式的特点是:从左到右依次计算,整个表达式的结果是最后一个表达式的结果。

exp1 exp2 exp3…

下标引用、函数调用和结构成员

[]                    ()                       .  ->

1.10常用关键字

1.10.1关键字typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。

1.10.2关键字static

在C语言中:

static是用来修饰变量和函数的

1. 修饰局部变量-称为静态局部变量(局部变量出了作用域不销毁;本质上,static修饰局部变量的时候,改变了变量的存储位置)

2. 修饰全局变量-称为静态全局变量

3. 修饰函数-称为静态函数

 

 

1.10.3关键字register

1.11#define 定义常量和宏

1.12指针

1.12.1内存

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地 址。

指针又叫地址,而指针变量是存储地址的一个变量

1.12.2 指针变量的大小

1.13结构体

结构体是把一些单一类型组合在一起的做法。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值