侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

C语言学习小记(4)-数据类型

zze
zze
2024-03-08 / 0 评论 / 0 点赞 / 43 阅读 / 8205 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

C语言中的数据类型可以分为以下几个大类:

基本整型

char

字符型,通常占用1个字节(8位),可以存储ASCII字符或者其他系统的字符集编码。虽然主要用于字符,但也可以作为整数进行算术运算。 

char c = 'A'; // 字符示例
char n = 65; // 整数值示例
  • 大小写转换示例

printf("请输入一个字符: \n");
char c = getchar();
if (c >= 'a' && c <= 'z')
{
    c -= ('a' - 'A');
}
else if (c >= 'A' && c <= 'Z')
{
    c += ('a' - 'A');
}
printf("大小写转换后的结果是: %c, ASCII: %d\n", c, c);

short int 或 short

短整型,至少2个字节,具体大小取决于编译器和系统平台。

short s = 32767; // 短整型的典型最大值

int

整型,默认大小根据目标机器架构,一般为4个字节,用于表示中等范围的整数值。

int i = 1000;

long int 或 long

长整型,至少与int一样大,在某些系统上可能更大,通常是4或8个字节。 

long l = 2147483647L; // 在32位系统上的典型最大值

long long int 或 long long

扩展长整型,至少8个字节,提供更大的整数范围。 

long long ll = 9223372036854775807LL; // 64位系统上的典型最大值

每种整型都有对应的无符号版本,例如 unsigned charunsigned shortunsigned intunsigned longunsigned long long,它们只能表示非负整数,并且允许的最大值是相应有符号类型的两倍。

浮点型

float

单精度浮点数,通常占4个字节,能够表示小数和很大的数值,但精度相对较低。

float f = 3.14159f;

double

双精度浮点数,通常占8个字节,比float有更多的精度来表示实数。

double d = 3.14159265358979323846;

long double

扩展精度浮点数,至少与double同样精确,但在一些实现中可能会提供更多精度,通常占用更多内存空间。 

long double ld = 1.0L / 3.0L;

枚举类型(Enum)

枚举类型是一种用户自定义的数据类型,它由一组命名的常量组成。

enum Color {Red, Green, Blue};
enum Color myColor = Red;

布尔类型(_Bool或bool)

C99标准引入了布尔类型 _Bool,在C++中对应为 bool,它可以取两个值:true(非零)和false(零)。在C语言中,可以通过 <stdbool.h> 头文件访问布尔类型。

#include <stdbool.h>
bool flag = true;

void类型

void 类型不表示任何特定类型的数据,通常用作函数返回类型来表示函数不返回值,或者用作指针类型以指向任意类型的数据。

void fun(void); // 函数不返回任何值
void *p; // 指针可以指向任意类型的对象

派生数据类型

数组

一系列相同类型的数据元素集合。

int arr[5]; // 声明一个包含5个整数的数组
char str[20]; // 声明一个可以容纳20个字符的字符串数组

指针

存储其他变量地址的变量。 

int value = 10;
int *pointer = &value; // 指针指向一个整型变量

结构体(struct)

用于组合不同数据类型的变量,形成一种复合类型。 

struct Person {
    char name[50];
    int age;
};
struct Person person;

共用体(union)

与结构体相似,但所有成员共享同一块内存空间。 

union Data {
    int i;
    float f;
    char c;
};
union Data data;

函数指针

指向函数的指针,可以像调用普通函数那样通过函数指针调用函数。

typedef void (*funcPtr)(int);
funcPtr myFunction = &printNumber;

void printNumber(int num) {
    printf("The number is: %d\n", num);
}

typedef定义的类型

typedef 关键字可以为已存在的数据类型创建一个新的名称,尽管这不创造新类型,但在某种程度上可以看作是对现有类型的一种“派生”。

typedef int Integer;
Integer count;

0

评论区