C语言数据类型总结,预处理指令,typedef,static&extern,递归笔记

来源:互联网 发布:12123但确实无数据返回 编辑:程序博客网 时间:2024/06/08 10:50

1.数据类型总结

1>基本数据类型

int 

long int = long  8byte,占位符:%d

short int = short  2byte,占位符:%d

unsigned int = unsigned4byte  占位符:%2d

signed int= signed 4byte,占位符:%d,%i


float

double8byte,占位符:%f

float  4byte,占位符:%f


char       1byte,占位符:%c

char类型在内存中存放的是其ASCII值  ’A‘ = 65


2>构造类型

数组 :由同种数据类组成

     格式:数据类型 数组名[元素个数]


结构体:由不同类型数据组成

     格式:定义类型,再利用类型定义变量

struct Student

{

char *name;

int age;

};

struct Student stu = {“Jack”,“18”};


指针类型

变量的定义  int *p;

间接操作变量的值

    int a = 10;

    p = &a;

    *p = 20;


枚举类型

定义 enum Sex{};

enum Sex s = {};

使用场合:当一个变量只允许由几个固定值组成


2.预处理指令

代码编译成0和1前的指令,所有预处理指令都#为开头    

预处理指令分为3种 宏定义  条件编译  文件包含

       预处理的位置是随便写都可以

预处理指令作用域:从编写指令的那一行开始,一直到文i

宏名一般用大写或k开头,变量名一般用小写

双引号“”里面的count只会输出count,不输出其他数值


宏定义

不带参数的宏

带参数的宏  :带参数的宏比函数效率高

宏只会替换数值(文本对换),不计算。参数中每一个数括上括号,结果值也要括上括号

如:#define Su((v1,v2),(v1+v2))

取消宏定义

#def Sum;


条件编译

满足某条件才参与编译,不满足不编译。#end if 不可缺 写完#if 要立刻写#end if

前面是宏

#if 条件1

     语句

#else if 条件2

语句

#else 

语句

#end if


文件包含

<>表示系统自带文件,“”表示定义文件

不允许循环包含,比如a.h包含b.h,b.h包含a.h

为了防止同样声明出现多次,在.h文件中加上条件编译,其名字取决于文件名

#if def LISHI_H

#define LISHI_H

int sum(int a,int b)

#end if


3.关键字 typedef

作用:给已经存在类型起一个行的名称

使用场合:基本数据类型,指针,结构体,枚举,指向函数的指针

*指向函数的指针与普通不同: typedef int(*Mysum)(int,int); 文件名写中间

使用注意 :#define :是文本的对换typedef:是定义新的类型

相同点:更改文件名不同点:定义类型


4.staic&extern对变量的作用

定义一个内部变量  static(int b);只在改文件中使用

声明一个外部变量  extern int a;==int a;里面出现的int a都是同一个,而且只能写在函数外面

static对局部变量的影响:延长局部变量的生命周期,程序结束的时候,局部变量就会被销毁

并没有改变局部变量的作用域

所有函数共享一个变量(性能优化)

使用场合:同一个变量使用多次,经常被使用,而且值不改,就用static


5.递归

定义:自己调用自己,函数每次调用新的函数,递归i找规律

使用注意:不能少if

递归成立必须有两个条件:函数自己调用自己

   必须有一个明确的返回值

0 0
原创粉丝点击