C语言——数据类型

一、基本类型:

它们是构建其他数据类型的基础。

1、整型

用于表示整数。例如,int a = 10;

整形中又有许多类型:

类型大小范围
int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long4 字节-2,147,483,648 到 2,147,483,647
unsigned long4 字节0 到 4,294,967,295
long long8字节-923372036854775808到923372036854775807
unsinged long long8字节18446744073709551615

详细参考我之前的文章《C语言——整型数据类型-CSDN博客》。

2、浮点型

也称实数类型: 主要用于表示小数。这包括浮点型(float)和双精度浮点型(double)。例如,float b = 3.14;

小数点可以前后浮动,故称浮点数。

类型大小精度
flaot4字节7位小数
double8字节16位小数

3、字符型

字符类型(char): 每个字符类型变量都能存储一个字符。例如,char c = 'A';

二、void类型

表示没有可用的值,主要用在函数的返回值类型中,表示该函数不返回值。

在C语言中,void类型是一种特殊类型,它通常用于以下三种情况:

1、函数返回类型

如果一个函数不需要返回任何值,那么我们就可以将其返回类型设为void。例如:

void printHello()
{
    printf("Hello, World!\n");
}

在这个例子中,printHello函数的返回类型是void,说明这个函数不返回任何值。

2、函数参数

如果一个函数不需要任何参数,那么我们就可以在函数的参数列表中写void。例如:

int getRandomNumber(void)
{
    return rand();
}

在这个例子中,getRandomNumber函数的参数列表是void,说明这个函数不接受任何参数。

3、指针类型

void还可以用于声明泛型指针,即可以指向任何类型的指针。例如:

void *ptr;

在这个例子中,ptr是一个void指针,它可以用来存储任何类型的地址。

需要注意的是,虽然void类型的指针可以指向任何类型的数据,但是我们不能直接通过void指针对数据进行操作,必须先将void指针转换为正确的类型。

例如:

#include <stdio.h>

int main()
{
	int num = 10;
	void* ptr = &num;//泛型指针指向一个整型数据
	//这时不能通过ptr这个泛型指针对整型数据num操作
	int* intPtr = (int*)ptr;//将泛型指针强制转换成整型指针赋值给整型指针
	//这时可以用intPtr这个整型指针对num进行操作
	*intPtr = 11;
	printf("%d", *intPtr);
	return 0;
}

在这个例子中,我们首先创建了一个指向int变量的void指针,然后我们将void指针转换为int指针,之后我们用int指针改变了int变量的值,最后我们通过int指针输出了int变量的值。

三、派生类型

C语言中的派生数据类型由基本数据类型(如int, float, char, double, void)和构造类型(如数组、指针、结构、联合和枚举)派生而来。以下是C语言中的派生数据类型:

1、数组(Array)

数组是由相同数据类型的数据元素组成的数据结构。即数组是存储相同类型元素的集合。元素可以通过索引访问,索引通常是数字,可以是整数或者其他类型。

int arr1[10] = { 0 };
char arr2[20] = { '\0' };

详细参考我之前的文章《C语言——数组-CSDN博客》。

2、结构体(Structure)

结构体是由不同类型的数据元素组成的数据结构。结构体用于存储多个相关的数据,它们可以是相同类型或不同类型的数据。

struct student
{
    char name[50];
    int roll;
    float marks;
};
struct student s;

详细请参考我的文章《C语言——结构体-CSDN博客》。

3、联合(Union)

联合是一种特殊的数据类型,可以存储不同类型的数据,但一次只能存储其中的一个。联合提供了一种方式,让同一块内存能够保存多种类型的数据。

union value
{
    int i;
    float f;
    char str[20];
};
union value v;

4、指针(Pointer)

指针是一个变量,其值为另一个变量的地址,即直接地址或内存位置。我们可以使用指针变量来操作内存。

int *p;//整型指针
char *ch;//字符型指针

详细请参考我的文章《C语言——指针-CSDN博客》。

5、枚举(Enumeration)

枚举是由用户定义的数据类型,它主要是用来声明整型常量。一个枚举类型定义了一个符号名称(identifier)和一组相关的整数值。

enum color {RED, GREEN, BLUE};//枚举类型
enum color c;
c = RED;

详细参考我之前的文章《C语言——枚举类型-CSDN博客》。

这些派生类型让C语言具有了更大的灵活性,可以处理更复杂的数据结构和问题。

四、用户定义数据类型

用户可以使用typedef为一个已存在的数据类型定义一个新名字。例如,可以定义一个新的数据类型BOOL,用于存储0或1:

typedef int BOOL;

也可以用#define预处理指令定义新名字:

#define uint unsigned int
  • 35
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
sscanf函数是C语言中一个非常常用的函数,它可以将一个字符串按照指定的格式转换成相应的数据类型。在嵌入式开发中,sscanf函数也是非常常见的,因为很多时候需要从串口或者其他外部设备中读取数据,并将其转换成相应的数据类型进行处理。下面是一些sscanf函数的使用技巧: 1. 使用sscanf函数时一定要注意格式字符串的正确性。格式字符串中的占位符必须与待转换的数据类型相对应,否则会发生未知错误。 2. 如果待转换的字符串中包含多个数据,可以使用多个占位符进行转换。例如,如果待转换的字符串为"1,2,3",可以使用" %d,%d,%d"的格式字符串进行转换。 3. 可以使用sscanf函数的返回值来判断转换是否成功。如果返回值等于待转换字符串的长度,则说明转换成功,否则转换失败。 4. 如果待转换的字符串中包含浮点数,可以使用"%f"或者"%lf"的格式字符串进行转换。 5. 如果待转换的字符串中包含十六进制数,可以使用"%x"的格式字符串进行转换。 6. 如果待转换的字符串中包含字符或字符串,可以使用"%c"或者"%s"的格式字符串进行转换。 7. 如果待转换的字符串中包含指针类型的数据,可以使用"%p"的格式字符串进行转换。 总之,在使用sscanf函数时一定要注意格式字符串的正确性,否则很容易出现转换错误的情况。同时,还应该注意sscanf函数返回值的判断,以确保转换的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值