初识C语言--各模块知识点简单整理

  本人初学C语言,对各组成部分进行梳理、总结、分析,如下:

(一)C语言的定义及初始架构

  1.什么是C语言?

  C语言是计算机编程语言,简而言之,就是人与计算机沟通的语言,同时,它是面向过程的语言,广泛应用于底层软件开发。这里提到的底层软件开发,是指在电脑应用软件之下的功能开发,包括操作系统、驱动层、硬件等。C语言的发展历史可以追溯到二进制指令,而后为方便记忆,出现了汇编语言,也就是我们常说的助记符,后来又发展为B语言,最后有了现在的C语言。起初C语言的标准无法统一,各公司的数据无法转化,后来有了大家目前公认的ANSI C标准,C语言标准得以确立。

2.C语言的初始架构

以一个C语言架构来说,解析如下:

#include<stdio.h>;//printf的头文件
int main()//int为整型类型  main是主函数,C源程序必须有的,且只能有一个
{
 printf("hi\n");//printf是库函数,用于打印数据,但使用此函数需要包含头文件

 return 0;//返回类型,0意为整数
}

(二)数据类型

数据类型是为了描述不同类型的数据,我们需要的数据有很多种,数据类型依据我们的需求来设立,例如:char 字符类型 short 短整型 int 整型 long 长整型 longlong 更长的整型 float 单精度浮点类型 double 双精度浮点类型

(三)变量和常量

1.变量

①局部变量

局部变量,也叫内部变量,是指在一个函数内部或复合语句内部定义的变量,局部变量的作用域是它所起作用的局部范围,而生命周期则是它进入作用域开始,到出作用域结束。

②全局变量

全局变量,指定义在函数外部的变量,它可以在程序的任何地方被调用和使用。它的作用域是整个程序,而生命周期也是整个程序的生命周期。

需要注意的是,当全局变量和局部变量冲突时,采取局部优先的原则。操作如下:

#include<stdio.h>;

int a=10;
int main()
{
 int a=20;
 print("%d\n",a);

 return 0;

}

 2.常量

常量是指在运行过程中不会发生改变,是一个固定数据的量。

①字面常量

‘一’‘人’ 等,这是字符

"abc""一二三"等,这是字符串

②const修饰的常变量

 

③define定义的标识符常量

#include <stdio.h>;
#define MAX 20;
int main()
{
 int a=MAX;
 printf("%d\n"a);
 
 return 0;
}

④枚举常量

(四)字符串

char 字符类型

char ch='a';

C语言中没有字符串类型,字符串介绍的标志是“\0”

char arr[]="abcd";

printf("%s\n",arr);      //%s是打印字符串的

%d 整型 %c字符  %s字符串 %f float类型 %lf double类型 %zu sizeof 返回值

(五)转义字符

转义字符为转变原来意思的字符,有如下几个:

\?   防止编译成三字母词(  ??(  )

\'     表示字符’

\"     表示字符”

\\       表示\\

\a      警告字符,蜂鸣

\r       回车

\t      水平制表符

\ddd     ddd表示1-3个八进制数字,换算成十进制的数字对应的ASCII 字符

\xdd     两个十六进制数字转换成十进制数字对应的ASCII 字符

(六)注释

注释有两种,主要作用是解释或弃掉某代码。

1.C语言的注释风格

 

2.C++的注释风格

 

(七)数组

int arr[]

arr[10]={10,11,12,13,14,15,16,17,18,19,};

               0   1   2   3   4  5   6   7    8   9     下标

arr[8]=18;

(八)操作符

1.算术操作符

有+-*/%,其中重点解释/和%

/,表示除,若除号两端是整数,执行整数除法;若两端有一个浮点数,则执行浮点数除法。

%,表示取模,必须是整数。例如:7%2=1

2.赋值操作符

=        int a=0;  //初始化

           a=20; //赋值

+=     a=a+3等同于 a+=3

-=    *=    /=   同理。

3.单目操作符

指只有一个操作数的操作符

有一个C语言中的常识:0表示假,非0表示真。

逻辑反操作符

负值

+  正值

取地址

sizeof   计算操作数的类型长度

++  int a=10;

      int b=a++;     //后置++,使用原则为先使用,后++

即:

   int b=a=10, a=a+1=11

-----------------------------------------------------------

     int a=10;

     int b=++a;   //前置++,使用原则为先++,后使用

即:

int a=a+1=11,b=a=11

------------------------------------------------------------

--同理

(类型)  强制类型转换

#include <stdio.h>;
int main()
{
 int (a)=3.14; //编译器默认3.14为double类型
 printf("%d\n",a);
 
 return 0;
}

4.关系操作符

== 用于判断相等

!= 用于判断不相等

>    >=    <    <=

5.逻辑操作符  

&& 逻辑“与”

||   逻辑“或”

6.条件操作符

也叫三目操作符

exp1  ?  exp2   :   exp3

真              √           ×

假              √           ×

int main()
{
 int a=10;
 int b=20;

 int r=a>b?a:b;
 printf("%d\n",r);

 return 0;
}

 7.逗号表达式、下标引用操作符

逗号表达式指逗号隔开的一串表达式

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

下标引用操作符   arr【3】  arr和3是操作数

8.函数调用操作符

#include <stdio.h>;
int Add(int x, int y)
{
 return x+y;
}
int main()
{
 int r=Add(2,3);  //()为函数调用操作符
 printf(“%d\n”,r);

 return 0;
}

(九)关键字

关键字是C语言本身内置的,非自己创建的。

重点解释几个:extern 声明外部符号      register  寄存器  static 静态的  return 函数返回值

const 常属性   signed  有符号的  unsigned 无符号的  enum 枚举  struct 结构体  union 联合体

void 无(函数返回类型) sizeof 计算大小  typedef  类型重命名

注意:我们常见到的define 不是关键字,它只是预处理指令 

1.typedef ----类型重命名

typedef unsigned int unit;
int main()
{
 unit num=20;
 return 0;
}

2.static

static的作用是修饰变量和函数。

static修饰局部变量时,局部变量出了作用域不销毁,本质上,static修饰局部变量时改变了变量的储存位置,影响变量的生命周期,使其变长,和程序的生命周期相等。

static修饰全局变量时,这个全局变量的外部链接属性就变成了内部链接属性,其他源文件(.c)就不能再使用这个全局变量了。

static 修饰函数时,道理和其修饰全局变量类似,也是将其外部链接属性改为了内部链接属性。

3.void

void表示函数不需要任何返回值。

4.register--寄存器

寄存器        速度最快,空间小,造价高

高速缓存    |

内存            |

硬盘            |慢

例如: register int num=3; //表示建议num存放在寄存器中

(十)指针

1.内存

内存,计算机中程序的运行都在内存上进行。将内存划分成一个个小的空间,每个空间为1个字节。

内存单元中的编号就是它的地址,也被称为指针。

2.指针变量

存放指针或地址的变量就是指针变量。

int a=10;

int* p=&a;  //int说明p的指向对象是int类型,*说明p是指针变量

*p 解引用操作符,意思是通过p中存放的地址,找到p所指向的对象,*p就是p所指向的对象。

(十一)结构体

自定义类型的一种  struct

 

(十二)总结

初学C语言,只对基础知识进行简单的梳理学习,后期会对各模块深入学习并记录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩昕悦Annabelle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值