C语言——数据类型

这篇具有很好参考价值的文章主要介绍了C语言——数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 变量

1.1变量的概念

变量就是在程序中可以发生变化的量,变量有类型。

变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。(1字节=8位)

1.2定义格式

存储类型 数据类型 变量名;

例如:(auto) int a;

  • 变量名是标识符,要符合标识符命名规则。

  • 存储类型:变量存储的位置。

  • 数据类型包含:名字 字节 取值范围

类型 存储大小 值范围
char 字符类型 1 字节 -2^7 到 (2^7-1)
unsigned char 无符号字符类型 1 字节 0 到 (2^8-1)
int 整数类型 4 字节 -2^31 到 (2^31-1)
unsigned int 无符号整数类型 4 字节 0 到 (2^32-1)
short 短整型 2 字节 -2^15 到 (2^15-1)
unsigned short 无符号短整形 2 字节 0 到 (2^16-1)
long 长整型 4 字节 -2^31 到 (2^31-1)
unsigned long 无符号长整形 4 字节 0 到 (2^32-1)
float 单精度浮点型 4字节 有效数据6-7位
double 双精度浮点型 8字节 有效数据15-16位

C语言——数据类型

C语言——数据类型

1.3 初始化格式**

(1)可以定义的时候初始化

​ int a=0;

(2)先定义后初始化

​ int a;

​ a=0;

1.4 局部变量和全局变量

(1)生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。也就是存活的周期时间。时间维度。

(2)作用域:变量可以起作用的范围。空间维度。

(3)内存的五个区域:

C语言——数据类型
注意🚨🚨🚨:初始化未0的全局变量和静态变量存放在.bss区
👉问:为什么未初始化的全局变量和静态变量的初值为0?
🧐答:因为这两种变量都存放在.bss

📢局部变量和全部变量的区别:

局部变量 全局变量
定义位置 函数体内部 函数体外部
存储位置 栈区 全局区
生命周期 同函数体共存亡 同整个程序共存亡
作用域 作用于函数体内部 作用于整个程序
初值 未初始化时,是一个随机值 未初始化时,值为0

例子:

#include <stdio.h>
int b;
int main(int argc, const char *argv[])
{
	int a;
	printf("%d\n",a);
	printf("%d\n",b);
	return 0;
}

2. 常量

2.1 概念

程序运行中不会发生变化的量叫常量,存放在常量区。

2.2 分类

2.2.1 字符型常量

类型为char,从ASCII表中找到的字符都是字符型常量,不可以改变。用单引号括起来的就是字符常量,例如‘A’。

类型 存储大小 值范围
char 字符类型 1 字节 -128 到 127
unsigned char 无符号字符类型 1 字节 0 到 255
signed char 带符号字符类型 1 字节 -128 到 127

原码、反码和补码:

  • (1)最高位表示符号位,正数时0,负数是1。

  • (2)正数的原码、反码和补码都一样。

  • (3)负数要用补码来计算:

**原码 **就是直接在数值前面加上符号表示

反码 等于原码的符号位不变,其他位按位取反

补码 等于反码加一

例如:-5

原码:1000 0101
反码:1111 1010
补码:1111 1011

用 ’ ’ 括起来的就是字符常量:

‘a’ 字符a

‘\0’ 空字符

‘\n’ 换行

用法:

char c='b';
	char a='\101';
	printf("%c\n",'A');
	printf("%c\n",65);
	printf("%c\n",'\x42');
	printf("%c\n",c);
	printf("%c\n",a);
	printf("%c\n",a+32);

👉因为C规定转义字符 ‘\x41’ 中\是转义字符引导符,后跟一个x表示x后面的数字是十六进制表示法,用’ '括起来表示一字节ASCII码。\转义符后面加数字代表转义成八进制的字符,后面的数字是八进制。

2.2.2 字符串常量

用“”括起来的就是字符串,例如“hello”,字符串最后跟一个’\0’🚨。

例如:

printf("%s\n","hello");

2.2.3 整型常量

整型常量就是类型为整数的常量,包括从负数到零到正数的所有整数。

可以用二进制、八进制、十进制和十六进制表示。

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a=10;//把整型常量赋值给整型变量
	printf("%d\n",a);
	printf("%d\n",10); //十进制
	printf("%d\n",0b1111); //二进制
	printf("%d\n",010); //八进制
	printf("%d\n",0xF); //十六进制
	return 0;
}

2.2.4 浮点型常量

浮点型常量就是类型为浮点数的常量,包括从负数到零到正数的所有浮点数。有float型和double型。

2.2.5 指数常量

即用科学计数法进行数据的表示。

例如:👇

300000000=3*10^8→3e8

0.0000012=1.2*10^-6→1.2e-6

例子:

float f=80000;
	printf("%e %e\n",0.0000012,f);

2.2.6 标识常量(宏定义)

宏定义:起到标识作用

  • (1)只是单纯的文本替换,在预处理的时候进行的

  • (2)遵循标识符命名规则

  • (3)一般用大写标识

格式:

#define 宏名 常量或表达式

📢特点:单纯的文本替换,不能手动运算(原样替换

例子:

#include <stdio.h>
#define ONE 1
#define TWO ONE+ONE
#define THREE ONE+TWO
int main(int argc, const char *argv[])
{
	printf("%d\n",THREE);

	return 0;
}//输出结果为:3

📢如果一个串长于一行,可在行尾用反斜线 “\” 续行

练习:

#define N 2
   #define M N+3 //M 2+3
   #define NUM N+M/2+1 //2+2+3/2+1=6
   void main()
   {
      int a = NUM;     
      printf("%d\n",a);
   }//输出结果为:6

C语言——数据类型文章来源地址https://www.toymoban.com/news/detail-443649.html

到了这里,关于C语言——数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [go语言]数据类型

    目录 知识结构 整型、浮点型 1.整型 2.浮点型 复数、布尔类型 1.复数 2.布尔类型 字符与字符串 1.字符串的格式化 2.字符串的截取 3.格式化好的字符串赋值给量 4.字符串的转换 5.strings包 在Go语言中,整型数据是一种基本的数据类型,用于表示整数。Go语言提供了多种整型数据类

    2024年01月19日
    浏览(49)
  • Go语言的数据类型

    以下是go中可用的基本数据类型 1.1 布尔型bool 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true 1.2 数值型 1、整数型 int8 有符号 8 位整型 (-128 到 127) 长度:8bit int16 有符号 16 位整型 (-32768 到 32767) int32 有符号 32 位整型 (-2147483648 到 2147483647) int64 有符号

    2024年02月06日
    浏览(39)
  • 【C语言----数据类型】

    提示:本篇文章为C语言数据类型的个人总结,内容如若有误,请及时联系我更正。 如若转载请注明原创,谢谢。 大家好,我是小明,很抱歉由于个人原因断更了一段时间,从今天开始恢复正常更新,今天总结的是C语言数据类型相关知识。 提示:以下是本篇文章正文内容:

    2024年02月12日
    浏览(27)
  • C语言——数据类型

    变量就是在程序中可以发生变化的量,变量有类型。 变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。(1字节=8位) 例如:(auto) int a; 变量名是标识符,要符合标识符命名规则。 存储类型:变量存储的位置。 数据类型包含:名字 字节 取值范围 类型 存储大

    2024年02月04日
    浏览(24)
  • R语言01-数据类型

    数值型(Numeric):用于存储数值数据,包括整数和浮点数。例如:x - 5。 字符型(Character):用于存储文本数据,以单引号或双引号括起来。例如:name - “John”。 逻辑型(Logical):用于存储布尔值,即TRUE或FALSE。用于表示逻辑条件的真假。例如:is_student - TRUE。 因子型(

    2024年02月11日
    浏览(28)
  • Go语言上手:复合数据类型

    之前我们初探了Go语言世界,了解到基本数据类型,为了满足不同的特殊需求,我们便要使用到以不同的方式组合基本类型构造出来了新的复合型数据类型——数组、结构体、slice、map。 数组是由一个或多个相同类型的元素组成的固定长度的序列。 例如: 一维数组: 二维数

    2024年02月12日
    浏览(45)
  • C语言数据类型和变量

    字符 整型 浮点型 小数点是可以浮动的 【3.14 = 0.314 * 10^1 = 31.4 * 10^-1】 布尔型 在 C99 中也引⼊了 布尔类型 ,是专门表示真假的。 布尔类型的使用得包含 头⽂件 stdbool.h 。 布尔类型变量的 取值 是:true或者false。 数组 结构体 - struct 枚举 - enum 联合体 - union limits.h 文件中说明

    2024年02月11日
    浏览(38)
  • C语言——自定义数据类型

    C语言自定义数据类型——结构体、共用体、枚举 结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员” ,其描述了一块内存区间的大小及解释意义。 举例:构造一个新的数据类型叫student,用来描述学生。 1.3.1 概念 通过结构体数

    2024年02月06日
    浏览(36)
  • 单片机语言--C51语言数据类型与存储类型以及C51的基本运算

    C51的基本语法与标准C相同,C51在标准C的基础上进行了适合于51系列单片机硬件的扩展。 深入理解Keil C51对标准C的扩展部分以及不同之处,是掌握C51语言的关键之一。 C51与标准C的主要区别如下: (1)库函数的不同。 (2)数据类型有一定的区别。 (3)C51的变量存储模式与标

    2024年04月10日
    浏览(44)
  • Linux C语言开发(二)C语言数据类型

    目录 一.C语言概述 1.1 什么是C语言 1.2 C语言与Linux 1.3 C语言的特点 二.数据类型

    2024年01月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包