黑马程序员_iOS开发C语言基础之枚举类型和数据类型总结

1、枚举类型使用常识

#include <stdio.h>


int main()

{

    //int age;//取值的范围很大

    

    //假如我的取值是有范围的,就像一年只有四季,这时就可以使用枚举类型的数据

    // 同结构体一样,先定义枚举类型

    // 1.定义枚举类型

    enum season

    {

        // 实际枚举值都是整型常量,默认起始值为0,也可以修改起始值 spring = 1;之后的变量值依次加1

        spring, //0 实际上spring是整型常量0,下面也是一样

        summer, // 1

        autumn, // 2

        winter // 3

    };

    // 代表这种枚举变量类型的变量取值只能是以上四种,但是C语言是弱语法类型,enum season s = 123;如果赋值不是以上其中一种,也不会保错,使用枚举类型可读性比较好,易于交流。

    // 2.定义枚举变量

    enum season s = winter;

    

    printf("%d\n",s); // 输出结果为3

    

    

    // 0  1  -1不详

    // int sex = -1;

    // 用枚举类型代替以上

    enum sex

    {

        man, woman, unkown

    };

    enum sex se = unkown;


    return 0;

}

2、数据类型总结

一、基本数据类型


1int

    1long int long  8个字节 %ld

    2short intshort 2个字节 %d  %i(整型都可以换成%i

    3unsigned intunsigned 4个字节 %zd

    4signed intsigned int 4个字节 %i


2float double

    1float 4个字节 %f

    2double 8个字节 %f  %.2f表示保留2位小数

3char

    1char 1个字节 %c %d

    2char类型保存在内存中的是它的ASCII

        'A' --> 65


二、构造类型

1、数组

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

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

2、结构体

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

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



三、指针类型

   1、变量的定义

int* p;

   2、间接操作变量的值

int a = 10;

p = &a;

*p = 20;


四、枚举类型

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


3、全局变量与局部变量

/*

 变量类型

 

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

 1.局部变量:

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

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

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

    4>没有固定的初始值

 

 

 2.全局变量

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

 2>作用域:从定义变量的那一行开始,一直到文件结尾(能被后面的所有函数共享)

 3>生命周期:程序一启动,就会分配内存存储空间,程序退出时才会销毁。

 4> 默认的初始值就是0

 

*/


#include <stdio.h>


int age;//全局变量如果没有赋初值的话,默认情况下是0,不像局部变量没赋初值的话,其值不确定。


void test()

{

    //int age;  //没有这个变量声明的话,主函数输出 0  10 但是有这个变量声明的话,主函数输出 0 0

    age = 10;

    //a = 10;

}


int main()

{

    /*

    int a = 10;

    {

        int b = 10;

    }

     */

    printf("%d\n",age);

    test();

    printf("%d\n",age);

    return 0;

}



调用完test函数后;释放内存:


#include <stdio.h>


int a = 10;

int b, c = 20;


void test()

{

    b++;

    int i = 0;

    i++;

    printf("b=%d, i=%d\n", b , i);

}


int main()

{

    test();

    test();

    test();

   /*

     输出结果是: b=1,i=1

                b=2,i=1

                b=3,i=1

    */    

    

    return 0;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值