打印

《C语言教程》02章 C语言的变量和数据类型

[复制链接]
706|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、基本数据类型
    基本数据类型只有5种,另外加上布尔型、数组、结构类型、枚举类型等都是基本类型的一种变化。指针是一种地址操作, 必须和某一种数据类型相结合才有意义。自定义数据类型则是将以上类型进行组合变化后重新命名而已。
  • char   字符型
  • int    整型
  • float   浮点型
  • double  双精度浮点型
  • void   无类型

相关帖子

沙发
niuyaliang|  楼主 | 2015-3-15 15:55 | 只看该作者
    不同的C语言版本都扩充了许多自己的类型,这些全是基本类型的变化(主要是数据范围的变化),扩充的修饰符有2组(short和long,signed和unsigned)。下面列出VC的基本类型及部分扩充类型,以供参考:
    标准ANSI C中没有布尔型,只有布尔表达式,但不同的C语言版本有可能扩充。布尔型只有2个值“真”、“假”,数值0表示“假”,0以外数值全当作“真”处理。

使用特权

评论回复
板凳
niuyaliang|  楼主 | 2015-3-15 15:59 | 只看该作者
二、变量定义
变量定义要注意以下几方面:
1.变量定义必须有一数据类型。
2.变量定义时可以赋初值,也可以不赋初值。
3.几个变量可以同时定义。
4.不同类型的变量赋值时,小类型的变量可以直接赋给大的,大类型的变量赋给小类型的变量时必须强制转换。

使用特权

评论回复
地板
niuyaliang|  楼主 | 2015-3-15 16:02 | 只看该作者
    .NET的编译器做了许多防错处理,使得不强制转换也不出问题。大家仍不可忘记类型转换,否则将来程序移植时会带来许多麻烦。

#include <stdio.h>

int main(void)
{
    unsigned char u_char = 109;     //定义并初始化
    char charC;                     //只定义不赋值
    double  doubleX=200, doubleY;   //2变量同时定义

    charC = u_char;  //类型的范围相同,无须强制转换

    printf("u_char=%c\n", u_char);
    printf("charC=%c\n", charC);
    printf("u_char=%d\n", u_char);
    printf("charC=%d\n", charC);

    doubleY = charC;                //小类型->大类型
    charC = (char)doubleX;          //大类型->小类型

    printf("doubleY=%e\n", doubleY);
    printf("charC=%d\n", charC);

    return 0;
}

结果如下

使用特权

评论回复
5
niuyaliang|  楼主 | 2015-3-15 16:03 | 只看该作者
三、变量命名
    C语言的变量命名是很自由的,不同的系统有各自的规则,如UNIX主张用小写并用下划线分割意思(例:new_value)。Windows主张大小写混写(例:NewValue)。 中国主张尽可能用英文,而日本更喜欢用汉字的读音。甚至不同企业的命名规则也不一样,但不管什么风格,都必须遵守C语言的几点规则。
1.不能用纯数字命名,如“123”,“849”等。
2.不能有空格和运算符,如“new value”,“two+three”。
3.不能用C语言的关键字(参见下表)、扩充关键字。

使用特权

评论回复
6
niuyaliang|  楼主 | 2015-3-15 16:03 | 只看该作者

使用特权

评论回复
7
niuyaliang|  楼主 | 2015-3-15 16:05 | 只看该作者
四、易忽视的地方
char型和unsigned int是同一类型,字符其实就是无符号整型,因此下面几种写法实际上是一样的。

#include <stdio.h>

int main(void)
{
    char ch1 = 109;
    __int8 x1 = 109;
    char ch2 = 'm';
    unsigned int x2 = 'm';

    printf("ch1=%c\n", ch1);  //字符方式输出
    printf("ch1=%d\n", ch1);  //整型方式输出

    printf("x1=%c\n", x1);    //字符方式输出
    printf("x1=%d\n", x1);    //整型方式输出

    printf("ch2=%c\n", ch2);  //字符方式输出
    printf("ch2=%d\n", ch2);  //整型方式输出

    printf("x2=%c\n", x2);    //字符方式输出
    printf("x2=%d\n", x2);    //整型方式输出

    return 0;
}

结果如下:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝