C语言 第二章 数据类型、变量和输入函数

C语言 第二章 数据类型、变量和输入函数

一、数据类型简介

在 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_9527Doubleint_producT_producttotal

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);

}

7.6、“*” 符

用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如:scanf("%d %*d %d",&a,&b);当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。

/* Note:Your choice is C IDE */

#include "stdio.h"

void main()

{

int a,b;

scanf("%d%*d%d",&a,&b);

printf("a=%d,b=%d",a,b);

}

7.7、宽度

用十进制整数指定输入的宽度(即字符数)。例如:scanf("%5d",&a);输入12345678只把12345赋予变量a,其余部分被截去。又如:scanf("%4d%4d",&a,&b);输入12345678将把1234赋予a,而把5678赋予b。

/* Note:Your choice is C IDE */

#include "stdio.h"

void main()

{

int a,b;

scanf("%4d%4d",&a,&b);

printf("a=%d,b=%d",a,b);

}

练习:

#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);

}

8、视频

https://www.bilibili.com/video/BV1mS4y1R7KT/

相关推荐

西部数据 My Cloud 西数云 NAS 网络存储使用总结(设置|操作|功能)
世俱杯小组赛百万空座 奖金分配偏向欧洲
365被限制了让提款

世俱杯小组赛百万空座 奖金分配偏向欧洲

📅 10-08 👁️ 3830
麻将,其实你根本不懂
365bet在线体育

麻将,其实你根本不懂

📅 02-15 👁️ 7835
《穿越火线》全屏退出攻略 如何退出全屏
365bet在线体育

《穿越火线》全屏退出攻略 如何退出全屏

📅 01-25 👁️ 9590
镍,是怎么影响金融市场的? 镍,是怎么影响金融市场的?答案:表面是俄被制裁,背后是金融战昨天全球股市大跌,和一个金属有关,那就是:镍它是如何引起全球...
舛的解释
365bet新手开户指南

舛的解释

📅 07-02 👁️ 4150