C语言内置类型和自定义类型

一、数据类型的介绍

char //字符数据类型 1字节

short //短整形 2字节

int //整形 4字节

long //长整形 4或8字节(c标准中说,sizeof(long)>=sizeof(int),具体 的是没有给具体的规则的)

long long //更长的整形 8字节

float //单精度浮点型 4字节

double //双精度浮点型 4字节

1.1官网中查看<limits.h>查看数据类型的最大最小值;<stdint.h>查看整形的详细定义;<float.h>查看浮点型的详细定义;

二、类型的基本归类

整形家族:

char

unsigned char

signed char

short

unsigned short

signed short

int

unsigned int

signed int

long

unsigned long

signed long

long long

unsigned long long

signed long long

注:char字符本质上存储的是ASCII码值,是整形,所以归类的时候,放在整形;这意味着可以使用大于,小于号来比较char字符的大小;注意是char(字符)类型,不是字符串。

浮点数家族

float

double

自定义类型(构造类型)

自定义类型:自己创造的类型

数组类型

结构体类型 struct

枚举类型 enum

联合类型 union

数组类型举个例子

int arr110 ->int 10

int arr25 ->int 5

这两个数组的类型不一样,因为数组的元素个数发生了变化或元素的类型发生变化;

所以数组也是自定义类型,根据实际情况来指定大小和类型;

指针类型

int *ptr

char *ptr

float *ptr

void *ptr

空类型

void 表示空类型(无类型)
通常应用于函数的返回类型、函数的参数、指针类型
注:这个类型相当重要,在Linux调用函数中大多采用此类型,来传参和返回参;就是利用了其可以将任意类型转换为空类型(之后再转化为任意类型),和解引用之后是空,无法改变其变量等性质

举例:

int a=10;

int *ptr=&a;

void *ptr1=(void*)ptr; //无法通过ptr1找到a的值,保障了a无法通过ptr1改变

ptr=(int*)ptr1;

//此外,可以将int类型转换成(void*),来使用;

int a = 10;

void* ptr1 = (void*)a;

cout << a << endl;

cout << ptr1 << endl;

cout << (int)ptr1 << endl;

相关推荐
代码地平线15 小时前
C++ 入门篇类和对象·上篇:从本质深剖类与对象与C++基本用法
c语言·开发语言·数据结构·c++·笔记·算法
云上码厂15 小时前
R 语言基于 lavaan 包实现结构方程模型 (SEM) 从环境配置到建模绘图全流程实战
开发语言·r语言
zhangfeng113316 小时前
htc 中minconda 明明安装了 Python 3.10显示 python 3.8 因为 `conda activate` 没有真正切换成功
开发语言·python·conda
十五年专注C++开发16 小时前
C++17之类模板实参自动推导CTAD
开发语言·c++·聚合初始化·catd
iCxhust16 小时前
C# 程序,实现二进制文件十六进制查看器,支持按行定位
开发语言·单片机·嵌入式硬件·c#·微机原理·8086最小系统·8088单板机
咕噜企业签名分发-淼淼16 小时前
浅谈云服务器在后端托管与签名分发场景中的应用价值
开发语言·php
在繁华处16 小时前
Java从零到熟练(八):泛型与注解
java·开发语言·python
SilentSamsara16 小时前
命令行工具开发:Click/Typer + 打包为独立二进制
linux·服务器·开发语言·前端·python·青少年编程·fastapi
Ulyanov16 小时前
深入QML滑块与进度控制:构建动态数据可视化界面:QML+PySide6现代开发入门(六)
开发语言·python·算法·ui·信息可视化·雷达电子对抗仿真
zyl8372116 小时前
Python 函数、模块、异常处理 超详细入门教程
开发语言·windows·python