关于c的部分总结

      今天老师又带着我们串讲了一下c的一部分东西,写这篇博客是为了总结一下今天学过的知识。

      首先先说一下编程语言,编程语言经历了从低到高的发展,从机器语言到汇编语言,再到高级语言,而c就是高级语言,而在高级语言中又分为面向过程的语言和面向对象的语言,c是前者。进入c语言。


一、首先说c的数据类型

1、整型  shot(短整型,2个字节)   int(整型,4个字节)   long(长整型,8个字节)

2、浮点型   float(4个字节)  double(8个字节)

3、字符型   char(1个字节)        1字节=8bit

4、数组  一维数组 a[3]   多维数组   a[3][4]   a[3][4][5]

5、指针    *p

6、结构体 struct 

7、公用体

二、c中的表达式和运算符

1、赋值表达式 = 、+=、-=、*=、/= a = 3; a+=3;

2、算数表达式   +、-、*、/   、%(取余)           a=10%3;

3、关系表达式   <、>、<=、>=、==、!=  

4、逻辑表达式   &&(与)    ||(或)       !(非)

5、位运算表达式    >> (左移)   <<    ~ (取反)    ^(异或)     &(按位与)     |(按位或)

00001111 >>1   后0000111    ~(00001111) -> 11110000    

6、条件表达式   表达式1?表达式2:表达式3;  a = 4 > 3? 2 : 1;

三、c程序处理流程

1、顺序执行    按代码自上至下执行

     条件分支

if语句     if(条件){...}           if(条件){...}else if(...){...}

switch 语句    switch(表达式){

case 常数1: xxx; break;

case 常数2:xxx;break;          //这里每个case后面都要跟一个break用以结束switch语句

}

2、循环执行

while(表达式) { 代码块 }  先判断表达式是否成立,若成立则执行代码,否则不执行。

        do{代码块} while(表达式)  先执行一遍代码,然后判断表达式还是否成立,若成立则再一次执行代码。

for( 1;  2; 3)  {代码4} 首先执行语句1,然后判断2是否成立,若成立执行代码4,然后执行3,后再执行2,形成循环


四、数组 :数组是最基本最常用的数据结构之一

1、数组的定义:  类型名 数组名[长度]

  int  array[3]

2、使用数组:通过引用数组下标来调动数组元素  数组名[下标]

数组名就是数组本身第一个的地址,其本身就相当于一个指针。可以通过数组名+下标来引用下标所对应元素的地址,进而可以引用元素 

3、多维数组:  int array[2][3]   char[3][4][5]

其实多维数组和一维数组在内存的分配上是一样的,都是一段连续的内存空间。唯一不同的就是多了几个节点。

 

五、函数:在我看来就是把特定的功能做一个包装,也就是把程序中的功能模块化处理。

使用一个函数首先要声明

函数返回值类型   函数名 (参数列表)

int  max(int x,int y);

然后就是在函数体中实现函数将要拥有的功能;

int  max (int x,int y){

函数体

}

      值得一提的是c的标准系统函数库为我们提供了很多实现一些功能的函数,这些函数分类包括在一些头文件中。

例如: stdio.h  :printf()  scanf()  …

 stdlib.h :malloc()   rand()  …

 string.h :strlen()  strcmp() strcpy()…

……

六、指针:以我的理解指针的本质就是一个地址,通过*运算获取地址所指向的值,从而用来一系列操作。


1、定义一个指针: 类型 * 变量名;  int * p;

      指针指向某个地址   p=&a;

2、指针的操作:指针可以通过地址来获取或改变地址指向的值。

例:  int a=3;

p=&a;

*p=5;

则这时a的值就变成了5。

3、指向数组的指针

int a[10];

p=a;  p=&a[0];  这两个表达式的结果是相同的。

4、指针给我们带来灵活、方便的同时,有时候也会带来麻烦。

 

七、字符串

char s;

s=’f’;直接赋字符

s=50;通过字符所对应的值赋值。

关于对字符串的处理c函数库提供了一个string.h头文件其中所包含的常用的函数有:

strlen  返回字符串长度

strcmp  比较两个字符串的大小

strcpy  拷贝字符串

strcat  连接字符串

strmove移动字符串

……

 

八、结构体:将不同类型的变量组成一组。

定义:struct 结构体名{struct  point{//定义一个结构

成员int x;

};  int y;

};

机构体中的变量为成员

struct声明其实是定义了一个新的数据结构就像int一样。

struct{……} x, y, z;

int  x, y, z;    其实这两种形式是相同的,这说明struct是另一种数据结构


结构体成员的引用  结构名.成员   point . x = 3;

 

既然struct是一种结构,那么它也就可以作为函数的返回值类型

struct  getpoint (int x ,inty){……}

结构数组  struct 结构名[5];  就像 int a[5];


指向结构体的指针,即结构指针

struct 结构名 * 变量名;

struct point * p1;然后为指针分配内存后就可以调用相关成员了

调用成员方式   p1->x = 3;


结构体还可以自引用: struct Student{

int x;

struct Student  stu1;}

当然也可以引用别的结构体。

 

九、FILE 文件的保存读取

FILE *fp;   定义一个指向文件的指针

文件操作是由一系列函数完成的

fopen(“路径”,“打开方式 w ,r ,a…”)  打开文件

fclose(fp);   关闭文件

fprintf(fp,…) 向文件中刷入数据

fscanf(fp,…) 从文件中读出数据

  ......


 


注: 只是大概很笼统的写了些c语言的大部分点。若有错误欢迎指正,共同交流。

 ------LC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值