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

二、变量定义

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

微课系列(三):Python列表中存储的是元素的引用

技术要点:在Python中,变量不直接存储值,而是存储值的引用。同样,在列表、元组、字典、集合等容器类对象中也是存储的元素值的引用。

1093
来自专栏大闲人柴毛毛

Java基础全面解析——Java语言基础

高级编程语言的组成:关键字、标识符、注释、常量与变量、语句、函数、数组,下面一一介绍各个组成元素。 a)  关键字 i.  定义:关键字是一些英文单词,但在ja...

3097
来自专栏Java帮帮-微信公众号-技术文章全总结

数据结构基础(1) --Swap ; Bubble-Sort ; Select-Sort

Swap的简单实现 //C语言方式(by-pointer): template <typename Type> bool swapByPointer(T...

3558
来自专栏恰童鞋骚年

《C#图解教程》读书笔记之三:方法

    不为形参在栈上分配内存,形参的参数名作为实参变量的别名指向同一位置,必须使用ref关键字,并且事先需要被赋值;

842
来自专栏决胜机器学习

PHP数据结构(二十六) ——基数排序实现36进制数排序

PHP数据结构(二十六)——基数排序实现36进制数排序 (原创内容,转载请注明来源,谢谢) 一、概述 插入排序、选择排序、快速排序等,都是通过关键字之间的比...

40811
来自专栏个人随笔

房上的猫:while循环与do-while循环,debug的调试运用

一.循环结构  1.循环不是无休止进行的,满足一定条件的时候循环才会继续,称为"循环条件",循环条件不满足的时候,循环退出  2.循环结构是反复进行相同的或类似...

39311
来自专栏数据库新发现

php中几个字符处理函数的说明

使用字符串 dellimiter 把 data 分割成一个数组返回 类似函数:split()

1262
来自专栏菩提树下的杨过

javascript中function调用时的参数检测常用办法

1.方法重载 js中并不直接支持类似c#的方法重载,所以只能变相的来解决,示意代码:(利用了内置属性arguments) var f1 = function(p...

2248
来自专栏我是业余自学C/C++的

vector

1824
来自专栏butterfly100

python学习笔记-基础

一、python简介 python语言的特性就是简单优雅,写容易明了的代码,而且尽量写少的代码。python为我们提供了完善的基础代码库,包括网络、文件、DB、...

4229

扫码关注云+社区

领取腾讯云代金券