博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言 第二章 数据类型、变量和输入函数
阅读量:6464 次
发布时间:2019-06-23

本文共 4033 字,大约阅读时间需要 13 分钟。

一、数据类型简介

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

类型转换:

类型 存储大小 值范围
char 1 字节 -128 到 127 或 0 到 255
unsigned char 1 字节 0 到 255
signed char 1 字节 -128 到 127
int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295
short 2 字节 -32,768 到 32,767
unsigned short 2 字节 0 到 65,535
long 4 字节 -2,147,483,648 到 2,147,483,647
unsigned long 4 字节 0 到 4,294,967,295

1.2、获得数据类型的长度

#include "stdio.h"void main(){    //sizeof用于获得数字类型的长度    //sizeof是一个关键字(32个)    printf("char占用字节数:%d \n",sizeof(char));    printf("short占用字节数:%d \n",sizeof(short));    printf("int占用字节数:%d \n",sizeof(int));    printf("long占用字节数:%d \n",sizeof(long));    printf("float占用字节数:%d \n",sizeof(float));    printf("double占用字节数:%d \n",sizeof(double));     }

二、变量定义

是用数据类型在内存中开辟的空间。

一个变量应该有一个名字,也就是我们程序员给该空间取的名──叫变量名。
它在内存中占据一定的存储单元。
变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分。

变量:在程序运行过程中可以变化的量。

常量:在程序运行过程中不可以变化的量。

#include "stdio.h"void main(){    int i=100;    i++;   //i=i+1    printf("i=%d \n",i); //101    i--;  //i=i-1    printf("i=%d \n",i); //100    i+=100;  //i=i+100        printf("i=%d \n",i);  //200    i/=3;  //i=200/3=66.666667=66          printf("i=%d \n",i);  //66    i+7;  //在内存中66+7完成运算,但值没有写回                printf("i=%d \n",i);  //66}

2.1、变量名的取名规则

第一个字符只能是字母或下划线( _ );

第一个字符的后而只能跟字母、数字和下划线( _ );

关键字(写上去会变色的那些单词)不能用作变量名;

区分大小写;

第一位(a-zA-Z_)后续(a-zA-Z_0-9)

请问下面那些是非法的,为什么?

1name

_product
_9527
Double
int
_producT
_product
total

2.2、变量定义的多种形式

/* Note:Your choice is C IDE */#include "stdio.h"void main(){    //定义变量并赋值    int i=100;        //先定义再赋值    float j;    //j=99.5f; 错误,变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分        //同时定义多个变量    char a,b,c;        //同时定义多个变量并赋值    double x=1.5,y=1.6,z;        j=99.5f;    z=x+y;    }

三、整型(int)

#include "stdio.h"void main(){    int i;    i++;   //i=i+1    printf("i=%d \n",i); //101    i--;  //i=i-1    printf("i=%d \n",i); //100    i+=100;  //i=i+100        printf("i=%d \n",i);  //200    i/=3;  //i=200/3=66.666667=66          printf("i=%d \n",i);  //66    i+7;  //在内存中66+7完成运算,但值没有写回                printf("i=%d \n",i);  //66}

四、字符型(char)

五、单精度浮点型(float)

六、双精度浮点型(double)

七、输入scanf

#include "stdio.h"void main(){    //判断年龄如果小于18岁则提示年轻真好,否则输出年龄        //定义变量    int age;        //用户输入年龄    printf("请输入年龄:");    //从键盘输入,&表示取变量地址    scanf("%d",&age);        //条件判断    if(age<18){  //如果条件成立       printf("年轻真好");    }    else{  //如果条件不成立       //输出       printf("您的年龄是:%d",age);    }}

scanf("格式控制",地址列表);

“格式控制”的含义同printf函数;
“地址列表”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址

%f 单精度

%lf 双精度 

%c 从键盘接收一个字符

%d 从键盘接收十进制整数
%s 从键盘接收一个字符串,遇空格、制表 符或换行符表示接收完毕。
%[] 从键盘接收一包含在括号内的字符,只 要遇到有一个不在其内的字符,便表 示接收完毕。

输入时如果遇到 空格 回车 Tab则表示结束

7.1、输入时指定分隔符

#include "stdio.h"void main(){    int a,b,c;    printf("请输入年-月-日:");    scanf("%d-%d-%d",&a,&b,&c);    printf("%d年%d月%d日",a,b,c);}

7.2、清除缓冲

#include "stdio.h"void main(){    char x,y,z;    printf("输入:");    scanf("%c",&x);    printf("输入:");    scanf("%c",&y);    printf("输入:");    scanf("%c",&z);    printf("%c,%c,%c",x,y,z);}

 

#include "stdio.h"void main(){    char x,y,z;    printf("输入:");    scanf("%c",&x);    fflush(stdin);  //清除缓冲    printf("输入:");    scanf("%c",&y);    fflush(stdin);  //清除缓冲    printf("输入:");    scanf("%c",&z);    fflush(stdin);  //清除缓冲    printf("%c,%c,%c",x,y,z);}

 

7.3、输入字符串

#include "stdio.h"void main(){    char a[100];  //数组,char只能是单个字符    scanf("%s",a);  //不要取地址    printf("%s",a);}

7.4、限定输入范围

#include "stdio.h"void main(){    //限定输入范围    char a[100];    scanf("%[0123456789]s",a);//只能输入0-9,其它表示结束    printf("%s",a);}

 

7.5、限定输入范围取反

#include "stdio.h"void main(){    char a[100];    scanf("%[^a]s",a);  //^取反,如果是a则表示结束    //scanf("%[^\n]s",a);  //如果是换行则结束,其它字符都可以    printf("%s",a);}

 

 练习:

#include "stdio.h"void main(){    int nianling;  //年龄    float fenshu;  //分数    char aihao[30];  //爱好    printf("请输入年龄:");    scanf("%d",&nianling);        printf("请输入分数:");    scanf("%f",&fenshu);        printf("请输入爱好:");    scanf("%s",aihao);        printf("您的年龄是%d,分数:%f,爱好:%s",nianling,fenshu,aihao);}

 

转载地址:http://yqezo.baihongyu.com/

你可能感兴趣的文章
谈Linq To Sql的优劣--纯个人观点
查看>>
HDU 4996 Revenge of LIS(DP)
查看>>
App里面如何正确显示用户头像
查看>>
DATAGUARD维护:从库宕机后如何恢复到管理恢复模式
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
内容开发平台(PLATFORM)
查看>>
java值传递
查看>>
判断一个数是否为素数的一个讨论(一)
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
Picasa生成图片幻灯片页面图文教程
查看>>
js获取当前时间的前一天/后一天
查看>>
[洛谷P3978][TJOI2015]概率论
查看>>
Python字符串的格式化
查看>>
C#反射---属性
查看>>
服务器常用的状态码及其对应的含义如下
查看>>
zoom和transform:scale的区别
查看>>
幸福框架:可扩展的、动态的、万能的 编号生成器
查看>>