一、数据类型简介

在 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=;
i++; //i=i+1
printf("i=%d \n",i); //
i--; //i=i-1
printf("i=%d \n",i); //
i+=; //i=i+100
printf("i=%d \n",i); //
i/=; //i=200/3=66.666667=66
printf("i=%d \n",i); //
i+; //在内存中66+7完成运算,但值没有写回
printf("i=%d \n",i); //
}

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=; //先定义再赋值
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); //
i--; //i=i-1
printf("i=%d \n",i); //
i+=; //i=i+100
printf("i=%d \n",i); //
i/=; //i=200/3=66.666667=66
printf("i=%d \n",i); //
i+; //在内存中66+7完成运算,但值没有写回
printf("i=%d \n",i); //
}

四、字符型(char)

五、单精度浮点型(float)

六、双精度浮点型(double)

七、输入scanf

#include "stdio.h"
void main()
{
//判断年龄如果小于18岁则提示年轻真好,否则输出年龄 //定义变量
int age; //用户输入年龄
printf("请输入年龄:");
//从键盘输入,&表示取变量地址
scanf("%d",&age); //条件判断
if(age<){ //如果条件成立
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[]; //数组,char只能是单个字符
scanf("%s",a); //不要取地址
printf("%s",a);
}

7.4、限定输入范围

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

7.5、限定输入范围取反

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

练习:

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

C语言 第二章 数据类型、变量和输入函数的更多相关文章

  1. 【C语言探索之旅】 第一部分第四课第二章:变量的世界之变量声明

    内容简介 1.课程大纲 2.第一部分第四课第二章:变量的世界之变量声明 3.第一部分第四课第三章预告:变量的世界之显示变量内容 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布 ...

  2. perl5 第二章 简单变量

    第二章 简单变量  by flamephoenix 一.整型 二.浮点数 三.字符串 基本上,简单变量就是一个数据单元,这个单元可以是数字或字符串.一.整型 1.整型   PERL最常用的简单变量,由 ...

  3. Mysql技术内幕-笔记-第二章 数据类型

    第二章 数据类型 Mysql中尽量不要使用UNSIGNED,因为可能会带来一些意想不到的效果 SHOW CREATE TABLE tablename\G;查看表的创建语句 ZEROFILL会将宽度小于 ...

  4. C#本质论读书笔记:第一章 C#概述|第二章 数据类型

    第一章 1.字符串是不可变的:所有string类型的数据,都不可变,也可以说是不可修改的,不能修改变量最初引用的数据,只能对其重新赋值,让其指向内存中的一个新位置. 第二章 2.1 预定义类型或基本类 ...

  5. C#语言————第二章 C#语言快速热身

    第二章    C#语言快速热身 ***********一.选择结构**************** 1:if选择结构与java的if选择结构语法完全相同 2:switch选择结构 ①:常量表达式的值可 ...

  6. C++primer拾遗(第二章:变量和基本类型)

    这是我对c++primer第二章的一个整理总结,算是比较适用于我自己吧,一小部分感觉不用提及的就省略了,只提了一下平时不注意,或者不好记住的内容. 排版太费劲了,直接放了图片格式.从自己的oneNot ...

  7. 《Python编程从入门到实践》第二章_变量和简单数据类型

    什么是变量呢? 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Pyth ...

  8. 《Python编程从入门到实践》_第二章_变量和简单数据类型

    什么是变量 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Python ...

  9. C++ Primer : 第二章:变量和基本类型(1)

    变量和基本类型之第一篇:基本内置类型和变量 一. (1) C++定义了一套包括算数类型和空类型,这些类型有:布尔类型bool,字符类型char,宽字符类型wchar_t,Unicode字符char16 ...

随机推荐

  1. 最长下降子序列O(n^2)及O(n*log(n))解法

    求最长下降子序列和LIS基本思路是完全一样的,都是很经典的DP题目. 问题大都类似于 有一个序列 a1,a2,a3...ak..an,求其最长下降子序列(或者求其最长不下降子序列)的长度. 以最长下降 ...

  2. centos 6.5 升级内核 linux 3.12.17 (笔记 实测)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Linux centos 2.6.32-431.el6.x86_64(Centos-6.5-x86_64-mi ...

  3. 图——拓扑排序(uva10305)

    John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...

  4. python 通用 修饰器

    import functools def log(option): def dec(func): def swapper(*arg, **karg): functools.update_wrapper ...

  5. 【转】Polya定理

    转自:http://endlesscount.blog.163.com/blog/static/82119787201221324524202/ Polya定理 首先记Sn为有前n个正整数组成的集合, ...

  6. checkbox选中状态不被改变

    让它的状态只能看不能改变,加上onclick="return false;". 也可以disabled="true";但是这个颜色变淡了; <input ...

  7. 学习建模 - UML

    最轻量级的工具下载地址 http://staruml.io/download 下载解压依赖:libgcrypt11 https://pan.baidu.com/s/1i3wb6M5 学习地址 http ...

  8. 怎么可以让div自适应屏幕的高度?(已解决)

    主要解决问题的方法是用JS脚本. 先看布局, 一个div是首部,另一个div是主体,主体包含左侧菜单和右侧内容. 我想把主体div的高度自适应屏幕剩余区域,怎么做? 首先,获取可见区域的高度,docu ...

  9. ADO.NET的弹性连接控制[ADO.NET idle connection resiliency]

    ADO.NET连接SQL Server有时候联机会无故的中断 (例如闲置过久或是交易时间太长等因素),这时又要重新连接,在.NET Framework 4.5之前,这件事情要由开发人员自己依照ADO. ...

  10. 夜深了,写了个JQuery的省市区三级级联效果

    刚刚练手的JQuery,希望大神们指正 主要实现以下功能: 1.三级菜单级联加载数据 2.可以在不操作脚本的情况下,给元素加属性实现级联功能 3.自定义动态显示数据 咨询问题: 对于一般比较固定不变的 ...