900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > c语言复杂数据类型存储 C语言基础-复杂数据类型

c语言复杂数据类型存储 C语言基础-复杂数据类型

时间:2019-06-02 20:31:13

相关推荐

c语言复杂数据类型存储 C语言基础-复杂数据类型

指针

指针是C语言中用的最多的一个知识点,它是用来储存地址的,储存地址的这个变量就成为指针。

屋子上面的门牌号就相当于指针(地址),屋子里的空间就相当于内存。

指针与字符串

定义字符串的两种方式:

1.利用数组

charname[]=“it”//字符串变量可以修改存放与栈里,可以随意修改

2.利用指针

char*name[]=“it”//字符串常量不可修改存放在常量区,不可修改指针变量之喜爱那个字符串首字符

tips:

1.常量区:存放一些常量字符串

2.堆:对象

3.栈:存放局部变量

指向函数的指针

写法: void (*p)()

(*p)是固定写法,代表指针变量p将来肯定是指向函数

左边的void:指针变量p指向的函数没有返回值

右边的():指针变量p指向的函数没有形参

指向结构体的指针

intmain()

{

structStudent

{

intno;

intage;

};

structStudentstu={1,20};

structStudent*p;

p=&stu;

//第一种方式

printf(“age=%d,no=%d\n”,stu.age,stu.no);

//第二种方式

printf(“age=%d,no=%d\n”,(*p).age,(*p).no);

//第三种方式

printf(“age=%d,no=%d\n”,p->age,p->no);

return0;

}

‍掌握:

1.看懂语法

2.定义指向函数的指针‍

doubletest(doublea,char*b,intc)

{}

//定义

double(*p)(double,char*,int);

p=test;或double(*p)(double,char*,int)=test;

3.如何间接调用函数

1>p (10.1,”Tom”,10);

2>(*p)();

指针的个人理解

个人觉得指针和windows上面的快捷方式有点相同。

快捷方式可以指向一个可执行程序,这就是普通的指针。

快捷方式可以指向一个快捷方式,这就是指向指针的指针。

快捷方式可以指向一个文件夹,这可以理解为指向数组的指针。

枚举类型

什么是枚举类型?

枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。

枚举类型定义:enum枚举名{枚举元素1,枚举元素2,……};

enumSeason{spring,summer,autumn,winter};

枚举变量的定义

1.先定义枚举类型,再定义枚举变量

enumSeason{spring,summer,autumn,winter};

enumSeasons;

2.定义枚举类型的同时定义枚举变量

enumSeason{spring,summer,autumn,winter}s;

3.省略枚举名称,直接定义枚举变量

enum{spring,summer,autumn,winter}s;

上面三种方式定义的都是枚举变量s

枚举使用注意

1> C语言编译器会将枚举元素(spring、summer等)作为整型常量处理,称为枚举常量。

2> 枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1。

enumSeason{spring,summer,autumn,winter};

也就是说spring的值为0,summer的值为1,autumn的值为2,winter的值为3

3> 也可以在定义枚举类型时改变枚举元素的值

enumseason{spring,summer=3,autumn,winter};

没有指定值的枚举元素,其值为前一元素加1。也就说spring的值为0,summer的值为3,autumn的值为4,winter的值为5

枚举的基本操作

1.赋值

可以给枚举变量赋枚举常量或者整型值

enumSeason{spring,summer,autumn,winter}s;

s=spring;//等价于s=0;

s=3;//等价于s=winter;

2.遍历枚举元素

enumSeason{spring,summer,autumn,winter}s;

//遍历枚举元素

for(s=spring;s<=winter;s++){

printf("枚举元素:%d\n",s);

}

枚举类型sample:

#include

intmain()

{

//1.定义枚举类型

enumSeason

{

Spring,

Summer,

Autumn,

Winter

};

//2.定义枚举变量

enumSeasons=Winter;

printf("%d\n",s);//输出结果是3,因为spring=0,summer=1,以此类推winter=3.

return0;

}

数据类型总结

一.基本数据类型

1.int

1>.long int, long 8字节 %ld

2>.short int,short 2字节 %d %i

3>.unsigned int,unsigned 4字节 %zd

4>signed int,signed,int 4字节 %d %i

2.float\double

1>float4字节 %f

2>double 8字节 %f

3.char

1>1个字节 %c,%d

2>char类型保存在内存中得是他的ASCII值

‘A’ == 65

二.构造类型

1.数组

1>只能由同一种类型的数据组成

2>定义:数据类型 数组名[元素个数]

2.结构体

1>可以由不同类型的数据组成

2>先定义类型,再利用类型定义变量

三.指针类型

1.变量的定义

int *p;

2.间接操作变量的值

int a = 10;

p = &a;

*p = 20;

四.枚举类型

使用场合:当一个变量只允许有几个固定取值时

变量

根据变量的作用域,可以分为:

1.局部变量:

1>:定义:在函数(代码块)内部定义的变量

2>作用域:从定义变量的那一行开始,一直到代码块结束

3>生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收

4>没有固定的初始值

2.全局变量:

1>定义:在函数外面定义的变量

2>从定义变量的那一行开始,一直到文件结尾

3>生命周期:程序一启动就会分配存储空间,程序退出时收回

4>默认初始值就是0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。