C语言初识:数据类型,变量的生命周期作用域

一,数据类型

1.作用:为创建变量

2.七种数据类型:

①整数型:char字符型,short短整型,int整形,long长整形,long long 更长整形

②小数型:float单精度,double双精度

3.主要涉及到类型的大小及如何采用数据类型定义变量常量

①.如何代码计算出类型的大小

#include<stdio.h>

int main()

{

   printf("%d\n", sizeof(char));  
   printf("%d\n", sizeof(short)); 
   printf("%d\n", sizeof(int)); 
   printf("%d\n", sizeof(long)); 
   printf("%d\n", sizeof(long long));
   printf("%d\n", sizeof(float)); 
   printf("%d\n", sizeof(double)); 
   return 0;

}

输出结果,依次是1byte,2byte,4byte,4byte,8byte,4byte,8byte

   补充:sizeof是一个操作符,用来计算数据类型和变量的大小

              计算机的基本单位是bit,一个比特位存一个二进制位,byte字节     

              1byte=8bit,KB=1024byte,MB=1024KB,GB=1024MB     

               由于利用空间的的大小不同,也就有了不同内存空间大小的 数据类型,择优而用

  ②数据类型定义变量

    int main()
{
    short age = 10;//short创建age变量,为age 开辟了short大小的空间用来存放10

    int num=100;
    float weight = 55.5f;//不加f则会默认为double 类型,可能会报警告
    char ch = 'e';//字符串用" "引起来,字符用‘ ’引起来

    .....
    return 0;
}

二,变量的作用域及生命周期

    首先,变量分为两种全局变量和局部变量。

       1.局部变量和全局变量定义

              int b = 10;//大括号外为全局变量
              void test()
         {
               int c = 1;//局部变量
         }
             int main()
        {
              int a = 5;//大括号内部为局部变量
              return 0;
         }

  2.变量作用域

   ①局部变量作用域

int main()//正确:因为printf在 int a作用域内
{
    {
        int a = 10;
        printf("%d\n", a);
        return 0;
    }
}    输出10


int main()//错误:printf在int a 作用域范围外,发出未声明的标识符的错误警告
{
    {
        int a = 10;
        return 0;
    }
    printf("%d\n", a);
}

  由此可见:局部变量的作用域的定义为变量所在的局部范围

     ②全局变量的作用域

          int a = 10;//正确,为全局变量,作用于整个工程
          void test()
     {
           printf("test:%d\n", a);
     }
          int main()
     {
           printf("main:%d\n", a);
           test();
          return 0;
} 输出:test:10    main:10

注意:若引用另一个.c文件中的变量则要进行外部变量声明

  例如在add.c 中定义:int jesus=10;

         在引用时要写extern int jesus;//声明外部符号

如下:

         extern int jesus;//声明外部符号,若不声明,则报错:jesus未声明变量
int main()
{
    printf("%d\n", jesus);
    return 0;//目的:验证全局变量的作用域为整个工程
}输出10

    3.变量生命周期

      ①局部变量生命周期:进作用域开始,出作用域结束

         int main()
   {
       {
             int a = 10;
             printf("%d\n", a);//当a出了小括号就被操作系统销毁收回了,输出10
       }
             printf("%d\n", a);//这个地方报错。是a为未声明的表识符
             return 0;
  }

    ②全局变量生命周期:和程序生命周期一样

            int a = 5;//a的生命周期并不会因为void的结束而结束。
            void test()
         {
              printf("%d\n", a);
         }
              int main()
         {
               test();
              return 0;
        }   输出5
     注意:全局变量的名称和局部变量的名称一样,局部标量优先,
           int a = 5;
           int main()
     {
             int a = 10;
             printf("a=%d\n", a);
            return 0;
  }输出10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值