预习第二章 数据类型

本文详细介绍了C语言中的数据类型,包括整型、无符号整型、短整型、字符型等的数范围和字节数。还讨论了void函数、静态局部变量的工作原理,typedef与#define的区别,枚举和宏的使用场景,定义与声明的差异,const修饰符的应用,以及变量、局部变量和全局变量的概念和区别。同时,提到了typedef简化复杂变量声明的方法,以及结构体和联合体的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据类型                                  数的范围                                         字节数                                                   

         int                                   -2^31~(2^31   -1)                                  4

    unsigned int                         0~(2^16    -1)                                        4

    short int                                -2^15~(2^15    -1)                                2

   unsigned  short  int                0~(2^16    -1)                                       2

   long  int                                  -2^31~(2^31     -1)                              4

   unsigned  long                       0~(2^32    -1)                                        4

         char                                   -2^7~(2^7    -1)                                   1

    unsigned  char                        0~(2^8    -1)                                        1

2、void fun()

     {

      static  int  a = 1; a++;

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

     }

      int main(void)

     {

     fun();

            fun();

            return 0;

      }

       执行结果为    2      3

      在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次,第二次调用fun()函数时,a的值为2

      并且没有进行初始化赋值,直接进行自增运算,所以得到结果为3

3、typedef  char  * p_str1;

      #define  p_str2  char *;

      p_str1  s1,  s2;

      p_str2  s3,  s4;

       上述变量的定义中,s1、s2、s3都被定义为char*,而s4则定义成了char

       原因在于,#define只是简单的字符串替换而typedef则是为一个类型起新名字

4、枚举和#define宏的区别

     #define 宏常量实在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值

    一般在编译器里,可以调试枚举常量,但是不能调试宏常量

    枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个

5、定义和声明的区别

     定义就是创建一个对象,为这个对象分配一块内存并给它取上一个名字。一个变量或对象在一定的区域内只能

     被定义一次。

     声明是告诉编译器,这个名字已经匹配到一跨爱内存上了,声明可以多次出现

6、const修辞构造类型和指针及其参合体

     将类型去掉,看const修辞谁,谁的值就是不能修改的

     如const  int  a[5] = {1,2,3,4,5};    去掉int,变成const  a[5],那么a数组里的值就不变了

7、什么是变量

     其值在其作用域内可以改变的量成为变量

     变量在使用前必须定义

     变量在内存中存放和它的值没有关系,而是和它的类型有关的

8、局部变量和全局变量的区别

    局部变量是在函数内作定义说明的,其作用域极限与函数内,离开该函数后再使用这种变量是非法的

    全局变量是在函数外部定义的变量,它不属于哪一个函数,属于一个源程序文件,其作用域是整个源程序

9、如何用typedef简化复杂的变量声明

     在传统的变量声明表达式里用类型名代替变量名,然后把关键字typedef加在该语句开头

10、联合体和结构体的区别

      在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和

      在联合中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度(同样遵循对齐)

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值