C语言语法笔记
数据类型
-
基本类型
-
整数类型
类型 存储大小(bytes) char 1 unsigned char 1 signed char 1 int 2 or 4 unsigned int 2 or 4 short 2 unsigned short 2 long 4 unsigned long 4 -
浮点类型
类型 存储大小(bytes) 精度(有效位数) float 4 6 double 8 15 long double 16 19
-
-
枚举类型
-
void类型: 指变量占用的内存大小为零,
void *pointer_name
只指明地址, 而不声明内存大小(不知道对象大小). -
派生类型
- 指针类型
- 数组类型
- 结构体类型
- 共用体类型
- 位域类型
- 函数类型
变量
声明: 向编译器保证变量会以指定的名称和类型存在, 令编译器能够在不知道具体细节时也能够进一步编译.
定义: 为声明的变量建立存储空间(预留内存, 方便存放待输入的变量).
除非使用
extern
关键字, 否则在声明时都将直接完成变量的定义.
声明变量时, 通过如下结构:
其中, type
主要功能为声明变量类型, 就是为变量分配内存空间, 通过指定具体的类型, 编译器可以得知需预留的内存大小.
变量的变化范围超出指定的内存空间后, 会出现内存溢出, 可能返回预期之外的结果.
声明指针变量时, 稍有不同:
其中, 星号*
即表示该变量为一个指针变量(告诉编译器这只是个地址), type表示该变量指向对象的类型(告诉编译器在到达地址后, 往后多大范围内是要找的对象).
存储类
存储类定义了程序中变量的可见性和生命周期, C语言中可用的存储类有:
auto
: 所有局部变量默认的存储类register
: 存储在寄存器(而非RAM)中的局部变量, 没有内存地址, 最大尺寸等于寄存器的大小(通常为一个字).static
:- 修饰局部变量时, 可以在程序生命周期内持续保持变量, 而不用每次进入/离开作用域时就创建/销毁.
- 修饰全局变量时, 会使变量的作用域限制在声明它的文件内.
extern
: 提供对全局变量的引用, 用以告知编译器该变量将在其他文件内完成定义.
函数
定义方法:
函数指针的定义方法:
枚举
批量完成名称到整数的映射, 若不显式赋值, 则首位元素默认为0, 非首位元素为前一元素+1.
若元素对应的整数不连续, 则该枚举无法遍历.
定义方法:
结构体
一种用于存储多个不同类型数据的结构, 占用内存大小为所有成员之和.
定义方法:
共用体
指定一块可以存储多种类型数据的内存空间, 空间大小由占用内存最大的成员决定.
同一时间只能使用一个成员(存储某一成员时, 会由于共用内存而影响其他成员)
定义方法:
位域
指定成员将使用的位数(需不大于其依附的类型)从而节约内存占用. 原内存空间不足存放新成员时, 会另起一块新的内存空间(大小取决于新成员依附类型)开始存放.
定义方法:
typedef
关键字
用于定义数据类型的别名, 也可以通过该方法简化结构体数据的声明.
定义方法:
const
关键字
用于指明某变量不可重新赋值, 令其成为常量. 若尝试对const
修饰的变量赋值则会引发错误(故通常需要在声明时就完成赋值), 观察const
本身的行为, 类似对变量"写保护".
对于定义的常量, 编码规范要求其名称首字母应大写, 以提醒程序员"此为常量".
使用方法:
更常用的使用场景并非直接定义常量, 而是用于修饰函数的形参, 避免函数对传入的参数做不期望的改动:
__EOF__

本文链接:https://www.cnblogs.com/travonD/p/c_programming_language.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了