基础知识

基础知识

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

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

地址变量
0x01A(int)
0x02B(float)
0x03C(char)
ox04D(int)

3.构造类型

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

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

A:

变量93215
下标01234

存取:
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.存储结构

  • 顺序结构
ABCDEFG
adad+1ad+2ad+3ad+4ad+5ad+6

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

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

  • 链式结构
    一个地址里面存储数据以及下一个存储单元的地址
A ad1B ad2C adx
ad0ad1ad2

这里写图片描述

C语言实现:

typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode;

L=(LNode*)malloc(sizeof(LNode));//(LNode*)用于强制转换
A->next=B;
B->next=C;
对比:哪个支持随机存取(Random Access)?
顺序结构。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值