&1.1初识C语言——入门篇

入门篇包括:

  1. C语言的历史
  2. VS2019的安装
  3. 第一个C语言程序
  4. 数据类型
  5. 变量、常量
  6. 字符串+转义字符+注释
  7. 选择语句
  8. 循环语句
  9. 函数
  10. 数组
  11. 操作符
  12. 常见关键字
  13. define定义常量和宏
  14. 指针
  15. 结构体

目录

1.C语言的历史

2.集成开发环境——VS2019的安装

3.第一个C语言程序

4.数据类型 

5.变量、常量

5.1变量

(1)定义

(2)分类

(3) 变量的作用域和生命周期

5.2 常量

(1)定义

(2)类型

 6.字符串+转义字符+注释

6.1字符串

(1)定义

(2)结束标志

(3)理解'\0'D的重要性

(4)文章推荐

6.2转义字符

(1)定义

(2)一些转义字符:

(3)解释后两项:

 (4)求strlen时

6.3注释

 7.选择语句

8.循环语句

9.函数

10.数组

(1)定义

(2)访问

11.操作符

 12.常见关键字

12.1C语言中的关键字

 12.2简单解释

12.3文章推荐

13.#define定义常量和宏

13.1定义常量

(1)说明

(2)示例

13.2定义宏

(1)说明

(2)示例

 14.指针

14.1内存

(1)定义

(2)图示

 (3)示例

 14.2指针变量

(1)定义

 (2)示例

(3)应用

14.3结构体

(1)定义

(2)初始化


1.C语言的历史

C语言是一门通用的,模块化,程序化的编程语言,被广泛应用于操作系统和应用软件的开发。由于其高效和可移植性,适应于不同硬件和软件平台,深受开发员的青睐。C语言源KenThompson发明的B语言,因此命名为C语言。

查看源图像
C语言之父

1978年,丹尼斯·里奇与布莱恩·科尔尼干一起出版了名著《C程序设计语言(The C Programming Language)》。此书被誉为c语言的圣经。随着C语言的发展,各厂商对C语言进行“定制”,衍生出许多“方言”,使得C语言可移植性大大降低。于是在ISO和ANST的合作下,制定了“ANSI C”标准(又称C89)。后来 ANSI 把这个标准提交到 ISO,1990年被 ISO 采纳为国际标准,称为 ISO C(又称C90)。ANSI C(C89) 与 ISO C(C90)内容基本相同,所以对于C标准,可以称为ANSI C,也可以说是ISO C,或者 ANSI / ISO C。

注意:以后大家看到 ANSI C、ISO C、C89、C90,要知道这些标准的内容都是一样的,且是现在主流的C语言标准。

C语言对C++和Java等后来产生的许多编程语言都产生了直接或间接的影响。

2.集成开发环境——VS2019的安装

参考视频教程:

VS2019安装教程

3.第一个C语言程序

#include <stdio.h>
int main()
{
	printf("Hello World!");
	return 0;
}

运行结果:

代码详细解释:

(1)#include

是一个编译预处理命令,声明了在程序编译之前要预先处理的内容。

(2)#include <stdio.h>

称为文件包含命令,括号中的内容称为头文件或首文件。好比借用别人的东西需要向别人打个招呼,调用C语言内置的函数也要向C语言“打个招呼”,即包含一下头文件。printf函数是C语言的内置函数,包含在头文件stdio.h中;本行代码的作用是声明本段代码已包含库函数stdio,后续可直接调用。

(3)int main()

本行代码的作用是声明main函数有一个整型返回值。在执行程序时,会从main函数头开始执行,然后进入main函数体执行其中的代码块,即main函数表示程序的入口部分。int称为关键字,该关键字代表的类型是整型。

(4)结构体部分

一个函数通常分为两部分:一是函数头,二是函数体。代码程序的3~6行就构成了函数体,其中第4行是要执行的内容。

(5)printf(" ");

为格式化输出函数,可以实现在屏幕上打印"   "中的内容。

注意:语句结尾需要添加分号。

(6)return 0;

可以理解为main函数的结束标志,返回一个整型常量0。

4.数据类型 

C语言的基本数据类型如下:

char                        字符类型数据

short                       短整形

int                           整型

long                        长整型

long long                更长的整型

float                        单精度浮点型

double                    双精度浮点型

存在这么多数据类型,目的是可以更方便的表达生活中的各种值。每种类型大小可以用sizeof来测试。 

注意:sizeof是一个关键字,是C语规定的具有特定意义的字符串,以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。

sizeof计算的结果单位是字节。计算机中的内存单位如下:

查看源图像

5.变量、常量

5.1变量

(1)定义

顾名思义,变量用来描述生活中那些可变的量,如年龄,薪资等。

(2)分类

(3) 变量的作用域和生命周期

作用域:就是变量起作用的范围,即限定变量可用性的代码范围。 

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

5.2 常量

(1)定义

生活中那些不变的值,如圆周率,身份证号码,邮政编号等。

(2)类型

 

 6.字符串+转义字符+注释

6.1字符串

(1)定义

由双引号引起来的一串字符称为字符串。

(2)结束标志

\0

注意:

  • 在计算字符串长度时,\0是结束标志,不算做字符串内容
  • \0在内存中是占据位置的

想不到吧!

(3)理解'\0'D的重要性

(4)文章推荐

深入理解c语言——'\0',"0",0之间的区别https://blog.csdn.net/supreme42/article/details/7300451?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.opensearchhbase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.opensearchhbasehttps://blog.csdn.net/supreme42/article/details/7300451?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.opensearchhbase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.opensearchhbase

6.2转义字符

(1)定义

顾名思义,转变它原来的意思。在一个字符前家=加‘\’使得=它具有其他的意思。

(2)一些转义字符:

转义字符释义
\'用于表示字符常量‘
\"用于表示一个字符内部的双引号
\\用于表示一个反斜杠,防止它被解析成一个转义序列符
\a蜂鸣
\b退格符
\n换行符
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1-3个八进制的数字。
\xdddd表示2个十六进制数字

(3)解释后两项:

ASCII表

 举例说明:

 (4)求strlen时

在计算字符串长度时,转义字符的长度均为一个字符:

 注意:八进制中不可能出现数字8,所以8不算在转义字符之内!!!

6.3注释

  • 不需要的代码可以直接注释掉。
  • 在需要说明之处加上注释文字,增强代码可读性,便于理解。

祖传表情包表情图制作

 7.选择语句

8.循环语句

9.函数

我们在初中就已经了解到函数的概念,其表征的是变量之间的一种对应关系。而在C语言中,函数是一个独立的功能,用于实现特定的操作,方便代码复用。

举例:

 ADD就是一个函数,用于实现两个整型的相加,并返回相加得到的结果。

10.数组

(1)定义

int  arr[10]={1,2,3,4,5,6,7,8,9,10};

(2)访问

通过下标进行数组的访问,下标从0开始。

11.操作符

常见操作符

 12.常见关键字

12.1C语言中的关键字

查看源图像

 12.2简单解释

数据类型关键字(12个)

(1)     char:声明字符型变量或函数

(2)     double:声明双精度变量或函数

(3)     enum:声明枚举类型

(4)     float:声明浮点型变量或函数

(5)     int:声明整型变量或函数

(6)     long:声明长整型变量或函数

(7)     short:声明短整型变量或函数

(8)     signed:声明有符号类型变量或函数

(9)     struct:声明结构体变量或函数

(10)   union:声明联合数据类型

(11)   unsigned:声明无符号类型变量或函数

(12)   void:声明函数无返回值或无参数,声明无类型指针

控制语句关键字(12个)

循环语句

(1)     for:一种循环语句

(2)     do:循环语句的循环体

(3)     while:循环语句的循环条件

(4)     break:跳出当前循环

(5)     continue:结束当前循环,开始下一轮循环

条件语句

(1)     if:条件语句

(2)     else:条件语句否定分支

(3)     goto:无条件跳转语句

开关语句

(1)     switch:用于开关语句

(2)     case:开关语句分支

(3)     default:开关语句中的“其他”分支

返回语句

(1)return:子程序返回语句

存储类型关键字(4个)

(1)     auto:声明自动变量,所有局部变量都是auto形的,所以一般不使用

(2)     extern:声明变量是在其他文件正声明(也可以看做是引用变量)

(3)     register:声明寄存器变量

(4)     static:声明静态变量

其他关键字(4个)

(1)     const:声明只读变量

(2)     sizeof:计算数据类型长度

(3)     typedef:用于给数据类型取“别名”

(4)     volatile:说明变量在程序执行中可被隐含的改变

12.3文章推荐

关键字系列——C语言32个关键字

13.#define定义常量和宏

13.1定义常量

(1)说明

我们最常使用到的#define的用法就是用#define来定义一个符号常量,而要修改时,只需修改#define这条语句即可。

(2)示例

#include<stdio.h>
#define PI 3.14
#define STR "圆周率约等于"
int main()
{
	printf("%s %f",STR,PI); //预处理时会被替换为 printf("%s %f","圆周率约等于",3.14);
	return 0;
}

运行结果:

13.2定义宏

(1)说明

宏是在C预处理阶段的一种文本替换工具。

(2)示例

#include<stdio.h>
#define ADD(x,y)((x)+(y))
int main()
{
	int sum = ADD(2, 5);
	printf("sum=%d", sum);
	return 0;
}

运行结果如下:

 14.指针

14.1内存

(1)定义

  • 内存是电脑中特别重要的存储器,计算机中程序的运行都是在内存中实现的。
  • 为有效的使用内存,就把内存划分为一个个小的内存单元,每个内存单元大小是一个字节。
  • 为有效访问内存单元,就给内存单元进行了编号,这些编号就被称为内存单元的地址。计算机在访问数据时,会先找到它的地址,再来获取改地址里的数据。

(2)图示

变量是创建在内存中的,是在内存中为其分配空间的,所以变量也是有地址的。 

 (3)示例

#include<stdio.h>
int main()
{
	int num = 10;
	&num;//&为取地址符号,取出num的地址;
         //num是一个整型变量,占四个字节,每个字节都有地址,取出的是第一个字节的地址
	printf("%p\n", &num);//%p是用来打印地址的
	return 0;
}

 运行结果如下:

 14.2指针变量

(1)定义

前面我们谈到了,每一个变量都都地址,那么如何存储地址呢?就要引入指针变量的概念。指针变量就是专门用来存储指针的变量!如定义一个指针变量p,p是一个指向int型数据的指针,即p可以存int型变量的地址。在表示指针变量,需要用到解引用操作符   *   。

int *p;

这里,p是地址,而*p就是所在地址的对象,我们可以通过*p间接访问数据;int表示p指向对象的类型为整型。

 (2)示例

#include<stdio.h>
int main()
{
	int a = 15;
	int *p = &a;
	printf("直接访问,a=%d\n", a);
	printf("间接访问,a=%d\n", *p);
return 0;
}

运行结果如下:

(3)应用

可以通过*p去改变a的值 ,示例如下:

对应关系:

 (4)指针变量的大小

指针变量多大?取决于地址的存放需要多大的空间。我们用sizeof来测试指针变量的大小。

int main()
{
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(long*));
	printf("%d\n", sizeof(double*));
	return 0;
}

运行结果如下:

 结论:指针大小在32位平台上是4个字节,在64位平台上是8个字节。

*注意:一个内存单元是一个字节,而管理这个内存单元的编号(指针)是四个字节。

14.3结构体

(1)定义

  在实际问题中,一组数据往往有很多种不同的数据类型。例如,登记学生的信息,可能需要用到 char型的姓名,int型或 char型的学号,int型的年龄,char型的性别,float型的成绩。又例如,对于记录一本书,需要 char型的书名,char型的作者名,float型的价格。在这些情况下,使用简单的基本数据类型甚至是数组都是很困难的。而结构体(类似Pascal中的“记录”),则可以有效的解决这个问题。
结构体本质上还是一种数据类型,但它可以包括若干个“成员”,每个成员的类型可以相同也可以不同,也可以是基本数据类型或者又是一个构造类型。

(2)初始化

#include<stdio.h>
struct Stu
{
	char name[20];   //名字
	int  age;        //年龄
	char sex[5];     //性别
	char id[15];     //学号
};
int main()
{
struct Stu s = { "张三",19,"男","20411070505" };
//访问结构成员并打印
printf("name=%s  age=%d  sex=%s  id=%s\n", s.name, s.age, s.sex, s.id);
	return 0;
}
#include<stdio.h>
struct Stu
{
	char name[20];   //名字
	int  age;        //年龄
	char sex[5];     //性别
	char id[15];     //学号
};
int main()
{
struct Stu s = { "张三",19,"男","20411070505" };
struct Stu * ps = &s;
//访问结构成员并打印
printf("name=%s  age=%d  sex=%s  id=%s\n", ps->name, ps->age, ps->sex, ps->id);
	return 0;
}

上面两种访问方式,运行结果均为:

此C语言之初识,完结!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值