C语言数据类型、运算符与表达式

一、基本数据类型
        程序中使用的各种变量都需要遵循先定义再使用的原则,而对于变量的定义分为三个方面:数据类型,存储类型和作用域
        (一)数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。

                1 、基本数据类型最主要的特点是,其值不可以再分解为其它类型

                2、构造数据类型的特点是,其值可以分为若干个“成员”或“元素”,每个“成员”有事一个基本数据类型或者构造类型。在C语言中,构造类型有以下几种:数组类型、结构体类型、共用体(联合)类型

                3 、指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈
                4 、在调用函数值时,通常应向调用者返回一个函数值,而有些函数不需要返回值,这种函数可以定义为“空类型”。其类型说明符为void

        (二)存储类型分为包含四种  auto(自动变量)   static (静态变量) extern(外部变量)   register(寄存器变量)在C语言中常用的为静态和外部变量  
                1 、 static 根据变量类型分为静态局部变量和静态全局变量。(1)静态局部变量 它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样(2)静态全局变量
它与变量的区别在于:全程变量可以再说明为外部变量(extern), 被其它源文件使用, 而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。

               2 、extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外, 还要 被其它文件使用。

二、整型数据的分类

      (一)整型数据的一般分类如下:

              1、 基本型:类型说明符为int,在内存中占2个字节。
              2、短整型:类型说明符为short int或short。所占字节和取值范围均与基本型相同。

              3、长整型:类型说明符为long int或long,在内存中占4个字节。

              4、无符号型:类型说明符为unsigned。++i

     (二)整型数据的表示方法
              1、十进制数:十进制数没有前缀。其数码为0~9。其中0不能作为第一位

              2、八进制数八进制数必须以0开头,即以0作为八进制数的前缀其数码为0~7。八进制数一般为无符号数

              3、十六进制数:十六进制数前缀0X或0x。其数码取值为0~9,A~F或a~f。
三、自增自减运算符  

          ++i:i自增1后再参与其他运算(--i)与之相同
          i++参与运算后,i的值再自增1.(i--)与之相同  (符号在前先运算再自增减,符号在后运后再自增减)

四、逗号运算符
       在C语言中逗号“,”也是一种运算符,称为逗号运算符其功能。是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为: 表达式1, 表达式2
         其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。


         1、逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。表达式1, ( 表达式2, 表达式3 )形成了嵌套情形。因此可以吧逗号表达式扩展为以下形式:表达式1, 表达式2, …表达式n 整个逗号表达式的值等于表达式n的值

2、程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
         3、并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。  

比如

#include <stdio.h>

int main(int argc, char *argv[]) {
    

    int a1,a2,b=2,c=7,d=5;
 

    a1=(++b,c--,d+3);   //       a2=0  b=3  c= 7(暂时按7算以下为6)  d=5   a1=(d+3)=8
    printf("a1=%d  a2=%d b=%d c=%d d=%d", a1,a2,b,c,d);
// 打印结果为a1=8  a2=0 b=3 c=6 d=5

    a2=++b,c--,d+3;    //  a2=4  b=4 c=6(现在为6以下为5) d=5
    printf("a1=%d  a2=%d b=%d c=%d d=%d", a1,a2,b,c,d);
// 打印结果为a1=8  a2=4 b=4 c=5 d=5
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值