C语言结构、关键字、数据类型、简单声明

本文介绍了C语言的基本结构,包括预处理器指令、函数、变量、语句和表达式,以及编程习惯。同时详细讲解了C语言的关键字,如auto、break、case等,并阐述了数据类型,如基本类型、枚举类型、void类型和派生类型。此外,还讨论了数据类型的大小、初始化以及类型转换规则,并提供了实例程序来说明。文章最后提到了字符串函数和内存管理中的栈区、堆区、全局区等概念。
摘要由CSDN通过智能技术生成

c程序结构包括:预处理器指令 函数 变量 语句 & 表达式 注释

**const与宏定义**
const 定义的是变量不是常量,只是这个变量的值不允许改变是常变量!带有类型。编译运行的时候起作用存
在类型检查。
define 定义的是不带类型的常数,只进行简单的字符替换。在预编译的时候起作用,不存在类型检查。

**区别**

(1) 编译器处理方式不同
#define 宏是在预处理阶段展开。
 const 常量是编译运行阶段使用。
 
(2) 类型和安全检查不同
 #define 宏没有类型,不做任何类型检查,仅仅是展开。
 const 常量有具体的类型,在编译阶段会执行类型检查。
 
(3) 存储方式不同
#define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。(宏定义不分配内存,变量定义
分配内存。)
const常量会在内存中分配(可以是堆中也可以是栈中)。

(4) const 可以节省空间,避免不必要的内存分配。 例如:
#define NUM 3.14159 //常量宏
const doulbe Num = 3.14159; //此时并未将Pi放入ROM中 ......
double i = Num; //此时为Pi分配内存,以后不再分配!
double I= NUM; //编译期间进行宏替换,分配内存
double j = Num; //没有内存分配
double J = NUM; //再进行宏替换,又一次分配内存!
const 定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象 #define 一样给出的是立即数,
所以,const 定义的常量在程序运行过程中只有一份拷贝(因为是全局的只读变量,存在静态区),
而 #define 定义的常量在内存中有若干个拷贝。

(5) 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为
一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

(6) 宏替换只作替换,不做计算,不做表达式求解;宏预编译时就替换了,程序运行时,并不分配内存。

编程习惯:把常量定义为大写字母形式。

C语言的标识符
C语言的标识符就像人的名字,用来表示变量、函数或者或者项目名称,范围:区分性质的大小写字母,数字0-9。

C语言的关键字:不能作为变量或者函数名。
关键字 说明
auto 声明自动变量
break 跳出当前循环
case 开关语句分支
char 声明字符型变量或函数返回值类型
const 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue 结束当前循环,开始下一轮循环
default 开关语句中的"其它"分支
do 循环语句的循环体
double 声明双精度浮点型变量或函数返回值类型
else 条件语句否定分支(与 if 连用)
enum 声明枚举类型
extern 声明变量或函数是在其它文件或本文件的其他位置定义
float 声明浮点型变量或函数返回值类型
for 一种循环语句
goto 无条件跳转语句
if 条件语句
int 声明整型变量或函数
long 声明长整型变量或函数返回值类型
register 声明寄存器变量
return 子程序返回语句(可以带参数,也可不带参数)
short 声明短整型变量或函数
signed 声明有符号类型变量或函数
sizeof 计算数据类型或变量长度(即所占字节数)
static 声明静态变量
struct 声明结构体类型
switch 用于开关语句
typedef 用以给数据类型取别名
unsigned 声明无符号类型变量或函数
union 声明共用体类型
void 声明函数无返回值或无参数,声明无类型指针
volatile 说明变量在程序执行中可被隐含地改变
while 循环语句的循环条件

C语言的数据类型
1 基本类型:
它们是算术类型,包括两种类型:整数类型和浮点类型。
2 枚举类型:
它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
3 void 类型:
类型说明符 void 表明没有可用的值。
4 派生类型:
它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。
类型决定变量占用内存大小,计算用sizeof。

初始化类型:一般类型储存大小以及占用字节:
(前缀unsigned,如unsigned char,表示无符号,占用字节不变)

char类型:
char:1个字节 8位。 值范围-128~127
整型:
byte:1个字节 8位 值范围 -128~127
short :2个字节 16位
int :4个字节 32位
long:8个字节 64位
浮点型:
float:4个字节 32 位
double:8个字节 64位

基本类型书写

整数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值