数据类型(C)

        

目录

1.常量与变量

1.2变量

2.标识符与关键字

2.1标识符

2.2关键字

3.基本数据类型

3.1整数类型        

3.2浮点型

3.3字符型

3.4printf、scanf中的格式说明符

4.注释

5.变量定义

 6.语句与语句块

7.实例


        数据类型是数据在程序中的一种组织形式,任何一个程序都离不开数据,可以认为程序的本质就是在操作数据。

1.常量与变量

        在C语言中数据的表现形式分为两种:常量和变量。然而无论常量还是变量都具有数据类型,因此可以对常量和变量再次进行划分:

        常量:整形常量、浮点型常量、字符型常量

        变量:整型变量、浮点型变量、字符型变量

1.1常量

        常量指的是在程序运行过程中,值不能被改变的量,在程序中常量只能被引用,不能被改变。常量有以下几种类型:

        第一种,整型常量,例如100、314、0、-200等

//例1 输出整型常量
#include<stdio.h>
int main() {
	printf("%d\n", -99);
	printf("%d\n", 1024);
	return 0;
}

        运行结果:

        

        分析:%d表示按10进制整数格式输出数据;在执行printf函数时,整形常量将取代双引号中的%d;“\n”是换行符,输出-99后下一个内容1024将出现在第二行。

        第二种,浮点型常量浮点型常量就是数学中的小数,由数字和小数点组成,如3.14,1.0等。

//例1 输出浮点型常量
#include<stdio.h>
int main() {
	printf("%f\n", 3.14);
	printf("%f\n", 1.0);
	return 0;
}

        运行结果:

        分析:%f表示按十进制小数格式输出数据;同理,执行printf函数时,浮点型常量将替换双引号中的%f;默认情况下,在VS中输出浮点型常量保留小数点后6位。

        第三种,字符型常量,在程序中,使用英文单引号括起来的字符被称为字符型常量。例如:‘d’,‘s’ ,‘@’等。

//输出字符型常量
#include<stdio.h>
int main() {
	printf("%c\n", 'd');
	printf("%c\n", 's');
	printf("%c\n", '@');
	return 0;
}

        运行结果:

         分析:%c表示按照字符型格式输出数据;同理,执行printf函数时,字符型常量将替换双引号中的%c;

        第四种,字符串常量,用双引号括起来的内容,例如“qwe”,"computer",不能写成‘qwe’。

//输出字符串常量
#include<stdio.h>
int main() {
	printf("%s\n", "qwe");
	printf("%s\n", "computer");
	return 0;
}

        运行结果:

        分析:%s表示按照字符串格式输出数据;同理,执行printf函数时,字符串常量将替换双引号中的%s;

1.2变量

        下面来介绍变量,顾名思义就是可以改变的量。变量本质上是一块有名字的内存空间,用来存放数据。类似于生活中的杯子,杯子的空间大小是固定的但是杯中的内容是可以改变的,可以装水、装可乐、雪碧等。

        总之,杯子是可以重复利用的,变量也是如此。内存空间大小是固定的,但是程序运行期间变量中的内容是可以变化的,因此称为变量。

        在C语言中,一个合法的变量由三部分组成:变量类型、变量名、变量值。

        变量类型:即整型、浮点型、字符型等。

        变量名:变量的名字。

        变量值:变量值是变量名标记的内存空间中的数据,如同杯中装的可乐、雪碧等。

2.标识符与关键字

        关键字又称保留字,C语言共有32个关键字,一般用于对语句、数据类型、变量属性进行说明、约束,不能用做其他用途。在编写程序时,用户自定义的变量名、函数名被称为标识符,标识符不能是关键字

2.1标识符

        在C语言中,用来对变量、函数、数组等命名的字符序列被称为标识符,C语言(c++)对标识符有以下规定:

        (1)只能有数字、字母(26个英文字符)、下划线组成

        (2)第一个字符只能是字母或者下划线

        (3)不能是关键字、区分大小写

        列举一些合法标识符:Abc、abc1、_ds,可以作为变量名或者函数名

        列举一些不合法标识符:1abc、int、@abc

        区分大小写意思是a与A是两个不同的标识符。

2.2关键字

C语言32个关键字
autobreakcasecharconstcontinuedefaultdo
doubleelseenumexternfloatforgotoif
intlongregisterreturnshortsignedsizeofstatic
structswitchtypedefunionunsignedvoidvolatilewhile

3.基本数据类型

        C语言中数据分为两种类型:变量、常量,但无论变量还是常量都是有数据类型的,常量的数据类型在使用时由系统自动给出,变量的数据类型在定义变量时由用户指定。

        定义变量的一般形式:变量类型 变量名=变量值;

        例如:定义一个整型变量a,他的名字就是a,此时处于未赋值状态,可在任何地地方通过“=”为其赋值。

int  a;
a=5;
//可以先定义,再赋值;也可以定义时同时赋值如下:
//int a=5;

3.1整数类型        

        常用的整型有:int(基本整形),long long(双长整型),最常用的是int(数据范围大约到10^9),而long long最大到10^18,其对应的格式说明符分别为%d和%lld。

        

//整型变量的定义与输出
#include<stdio.h>
int main() {
	int a = 10;
	long long b = 100;
	printf("%d\n", a);
	printf("%lld\n", b);
	return 0;
}

        运行结果:

        分析:程序再执行第四、五行时,会先在内存中开辟两个内存空间,分别标记为a和b,然后将数字10和100分别放入对应的内存空间;程序在执行第六、七行时,先读取变量a、b对应内存空间总的数据10、100,然后替换%d和%lld。

3.2浮点型

        浮点型有float、double两种。

        float数据有效数字6~7位,范围到10^38,对应的格式说明符为%f,十进制小数。

//单精度浮点型变量(float)的定义与输出
#include<stdio.h>
int main() {
	float a = 3.14;
	printf("%f\n", a);
	return 0;
}

        运行结果:

        

        分析:程序在第四行,先开辟一片内存空间,并标记为a,然后把3.14放到对应的内存空间中;执行第五行时,先读取变量a对应内存空间中的数据,然后替换%f输出。

        double有15~16位有效数字,范围到10^308,格式说明符为%lf,十进制小数。

        

//双精度浮点型变量(double)的定义与输出
#include<stdio.h>
int main() {
	double a = 3.14;
	printf("%lf\n", a);
	return 0;
}

        运行结果:

        分析:分析:程序在第四行,先开辟一片内存空间,并标记为a,然后把3.14放到对应的内存空间中;执行第五行时,先读取变量a对应内存空间中的数据,然后替换%lf输出。

3.3字符型

        字符类型只有一种:char。格式说明符为%c。

//字符型变量(char)的定义与输出
#include<stdio.h>
int main() {
	char c = 'A';
	printf("%c\n", c);
	printf("%d\n", c);
	return 0;
}

        运行结果:

        分析:在执行第四行程序时,先开辟内存空间,并标记为c,然后把'A'对应的ASCII码65放到内存空间中;执行第五行程序时,先读取变量c对应内存空间中的数据65,然后替换%c,由于%c表示字符格式,因此输出ASCII码65对应的字符'A';第六行,%d则直接把65输出来。

        字符在内存中是按照其对应的ASCII码进行存储,而ASCII码本质上也是整数,因此可以用%d,换句话说字符既可以当做%c也可以%d。

        实际编程中,需要记住的字符对应的ASCII码:

        'A'  ASCII  65,'C'可以写成‘A’+2

        'a'  ASCII  97, ‘b’可以写成‘a’+1

        '0'  ASCII  48,‘9’可以写成‘0’+9

         把一个字母大小写转换,如‘a’->'A',可写为'a'-32,同理大写转小写就是+32,如果忘了是32,还可以用‘a’-'A',因为‘a’-'A'=32。

3.4printf、scanf中的格式说明符

%dint
%lldlong long
%ffloat
%lfdouble
%cchar
%s字符串

4.注释

        行注释“//”后面的内容不会被执行;

        块注释“/*”   "*/",两个中间的多行内容不会被执行;

        主食可以用来写一写注解。

5.变量定义

        定义变量的两种形式:

        (1)定义多个同一类型的变量:变量类型 变量名1,变量名2.......;

        (2)定义一个变量:变量类型 变量名;

#include<stdio.h>
int main() {
	int a = 100, b = 200;
	double df;
	df = 3.14;
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	printf("df=%lf\n", df);
	return 0;
}

         运行结果:

        分析:printf双引号里的内容除了%d等格式说明符会被后边的东西替代,其他内容都会原样输出。

        变量需要注意的是:先定义,后使用;同一作用域内变量不可以重名;现阶段可认为每一个{}是一个作用域。

        在一个{}内定义的变量,在{}外不可以引用;在{}外的变量,可以在其内部的{}中引用。

 6.语句与语句块

        在C语言中,程序执行的最小单位为语句,一条合法的语句必须在末尾有一个分号。单独的一个分号也构成语句,即空语句,其什么也不做。

        语句块:用{}括起来的多行内容,不会影响程序的正常执行。

        

#include<stdio.h>
int main() {
	int a = 100, b = 200;
	double df;
	df = 3.14;
	{
		printf("a=%d\n", a);
		printf("b=%d\n", b);
		printf("df=%lf\n", df);
	}
	return 0;
}

可以看到{}不会影响程序的正常执行。

7.实例

        要求:交换两个整型变量的值。在int范围内。

        输入:依次输入两个整数a、b,用空格分开

        输出:交换后的两个变量a、b,用空格分开

#include<stdio.h>
int main() {
	int a, b;
	scanf("%d%d", &a, &b);
	int tmp = a;
	a = b;
	b = tmp;
	printf("%d %d", a, b);
	return 0;
}

 

       分析:scanf用于从键盘输入两个整数a,b,格式基本与printf相同,区别在于在变量名前要加&。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值