基础知识

来源:互联网 发布:淘宝助理5.0官方下载 编辑:程序博客网 时间:2024/05/29 07:57

基础知识

  • 变量类型
  • 控制语句
  • 函数
  • 逻辑结构和存储结构

1、变量类型

1.基本类型

  • 数值类型:
    short,int,long, float,double(存储各种数字比如整数、小数)
    最常用的有int(存储整数),float(存储小数)

  • 字符类型:
    char(存储字符A,B,C)

int,float,char的用法

int a;int b=1;int b,c,d=2;//为什么需要进行初始化,那是由于定义的变量的值是不确定的,变量定义的时候我们系统为它分配存储单元,但是这个存储单元的值是不确定的a=1;d=b;//存取char a;char b='A';char b,c,d='a';

2.指针型
存取变量地址的变量类型

int *p1=&A;int *P2=&B;char *p3=C;p1=&D;E=*p1;//取值

NULL是不指向任何地址的特殊标志,其值为0,初始化指针常用,如int *p4=NULL

地址 变量 0x01 A(int) 0x02 B(float) 0x03 C(char) ox04 D(int)

3.构造类型

  • 数组:相同类型的变量排成一列所构成的变量集

int B[100];//长度为100,存储范围是0~99
int A[5]={9,3,2,1,5};//初始化A

A:

变量 9 3 2 1 5 下标 0 1 2 3 4

存取:
a=A[0];//a的值为9
A[1]=b;//A[1]与b值相同

需要将不同类型组合在一起来解决问题?
School_Name;
School_Address;
School_Area;

typedef struct            {              int a;float b;char c;...}结构体名;typedef struct 结构体名          {              int a;float b;char c;struct 结构体名 *d;...}结构体名;
  • 结构体:不同类型变量组合在一起构成的变量
typedef struct            {              int a;float b;char c;...}S;S s;s.a=1;s.b=1.111;s.c='A';R=s.a;

4.void
它主要用于定义没有返回值的函数

void F(){......return;...}

2.控制语句

1.判断语句

if(条件)     {...}
if(条件)     {...}else{...}
if(条件)     {...}else if(条件){...}...else     //这里的else可以没有{...}

条件:可以是一个表达式

a==b
a+b
1+1
!a

也可以是一个变量或字面值

a
2
‘a’

上边的一切如果结果为0表示假,非0表示真,真则进入if块,否则有else 块则进入else块
2.循环语句

for(int i=0;i<N;++i)//这里的++i和i++效果没有区别,但是++i效率相对较高,但现在的编译器  优化效果很好没有什么区别{...}

执行过程:定义循环变量i->判断->{…}->循环变量的变化

while(条件){...}
do{...}while(条件)

3.函数

定义:类比成一个工厂,输入原料,输出产品

返回值类型 函数名 (参数定义列表)//形参
{

}

调用方法:

函数名(参数列表)//实参,注意实参与形参意义对应

(1)int add(int a,int b){     return(a+b);}result=add(1,2);//调用
(2)void F(){...}F();//调用 也能用return,跳过剩下的语句

example:

int result=0;void getResult(int r){    ++r;}getResult(result);//调用 这时候改变的是r result的值没有改变

要想改变result的值那需要这样写

//变量是基本上述的基本类型 int,char//C++写法int result=0;void getResult(int &r)  //引用型{    ++r;}getResult(result);//调用//C语言写法int result=0;void getResult(int *r)  //引用型{    ++(*r);}getResult(&result);//调用
//变量是指针型 //C++写法int *P=NULL;void getResult(int *&p)  //引用型{    ...    p=q;    ...}getResult(p);//调用//C语言写法int *P=NULL;void getResult(int **p)  //引用型{    ...    p=q;    ...}getResult(&p);//调用

4.逻辑结构与存储结构

1.逻辑结构

  • 没关系(集合)
    这里写图片描述
  • 一对一(线性表)
    这里写图片描述
  • 一对多(树)
    这里写图片描述
  • 多对多(图)//有回路、环
    这里写图片描述

2.存储结构

  • 顺序结构
A B C D E F G ad ad+1 ad+2 ad+3 ad+4 ad+5 ad+6

只要知道第一个地址和长度就能知道其他任何一个存储单元的地址

C语言实现:int Array[7];

  • 链式结构
    一个地址里面存储数据以及下一个存储单元的地址
… A ad1 … B ad2 … C adx … … ad0 … ad1 … ad2 …

这里写图片描述

C语言实现:

typedef struct LNode{    int data;    struct LNode *next;}LNode;L=(LNode*)malloc(sizeof(LNode));//(LNode*)用于强制转换A->next=B;B->next=C;
对比:哪个支持随机存取(Random Access)?顺序结构。