iOS开发-C语言-基础概念

本文深入解析C语言的关键概念,包括关键字、标识符、注释、数据类型、常量、变量等核心内容,帮助读者建立扎实的C语言基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关键字及其概念
1. 关键字基本概念
关键字就是已被C语言本身使用,不能作其它用途使用的字。 例如关键字不能用作变量名、函数名等

C语言中一共有32个关键字
auto double intstruct break else long switch case enum register typedef char extern retur nunion const float short unsigned continue for signed void default goto sizeof volatile do if while static

  1. 数据类型关键字
    A.基本数据类型(5个)
    void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果
    char:字符型类型数据,属于整型数据的一种
    int:整型数据,通常为编译器指定的机器字长
    float:单精度浮点型数据,属于浮点数据的一种
    double:双精度浮点型数据,属于浮点数据的一种

B .类型修饰关键字(4个)
short:修饰int,短整型数据,可省略被修饰的int。
long:修饰int,长整形数据,可省略被修饰的int。
signed:修饰整型数据,有符号数据类型
unsigned:修饰整型数据,无符号数据类型

C .复杂类型关键字(5个)
struct:结构体声明
struct:结构体声明
union:共用体声明
enum:枚举声明
typedef:声明类型别名
sizeof:得到特定类型或特定类型变量的大小

D .存储级别关键字(6个)
auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配
static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部
register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形
参,建议编译器通过寄存器而不是堆栈传递参数
extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,示编译器
遇到此变量和函数时在其他模块中寻找其定义。
const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统
或其他线程/进程改变)
volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变, 强制编译器每次从内存中取得该变量的值

二、标识符概念及其命名原则

1、标识符
在C语言中,符号常量,变量,数组,函数等都需要一定的名称,我们把这种名称成为标识符。
标识符划分:关键字,预定义标识符和用户标识符

2、标识符命名原则
命名规则:
1、只能由字母、数字、下划线或者美元符号($)组成
2、不能以数字开头
3、不能与关键字重名
4、严格区分大小写

命名规范:
1、起一个有意义名字(能够提高代码的可读性)
2、驼峰命名
第一个单字以小写字母开始,第二个单字的首字母大写;
或每一个单字的首字母都采用大写字母
1)命名应当直观且可以拼读,要望文知意,便于记忆和阅读。
2)命名的长度应当符合“min-length && max-information”原则。
3)当标识符由多个词组成时,建议采用“驼峰命名法”。
4)尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。
5)对在多个文件之间共同使用的全局变量或函数要加范围限定符
6)标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。

三、注释
良好的代码注释习惯可以提高程序的可读性
1、为什么要使用注释?
2、使用注释的目的和应用的场景
1)解释代码
2)函数说明
3)思路分析
4)调试BUG

注释是对代码的解释说明,是写给程序员看的,方便程序员之间的交流
3、使用注释的特点
注释是不参与编译,编译器遇到注释就跳过

1)单行注释:
//进行单行注释
快捷键:Command+/

2)多行注释
/内容/进行多行注释

4.使用注意
1)单行注释只有这一行是注释,并且两个斜杠后面才是注释内容
2)command + / 可以增加或取消单行注释
3)多行注释是可以嵌套单行注释的
4)单行注释是可以嵌套多行注释的,多行注释必须写到一行里面
5)多行注释不可以嵌套多行注释

四、数据类型概述
1.C语言中有5大类数据类型:

基本类型、构造类型、指针类型、空类型、定义类型
常见的数据类型有:int、float、double、char
1整型:用于准确地表示整数,根据表示范围的不同分为以下三种: 短整型(short) < 整型(int) < 长整型(long)

2实型(浮点型):用于标识实数(小数)根据范围和精度不同分为以下两种:
单精度浮点数(float) < 双精度浮点数(double)
注意:float只能够保证7位数字是有效的!!!
3字符型:用来描述单个字符,char

为什么要区分类型?
1)为了更加合理使用内存,不同的数据类型需要存储空间可能是不一样的
2)数据的存储格式不 一样 int 4字节 float 4字节
3)不同数据类型他们的运算方式可能不一样的
总结:因为内存空间是有限的,一般以一个字节,也就是8个二进制数(如,01010101)为基本单 位。 变量的类型,就是为了确定要存储这个变量所需要的空间。分了类型以后,划分多大 空间就有了 规定。在计算的时候,不同长度的数,要先依据类型,向长度最长的转化,这样才 能计算。所 以,为了方便计算机的存储和计算,变量要分类型。

2、不同数据类型表示的范围
计算一个位数的范围-2^(n-1) 到2^(n-1)-1
bool型为布尔型,占1个字节,取值0或1。
BOOL型为int型,一般认为占4个字节,取值TRUE/FALSE/ERROR。
sbyte型为有符号8位整数,占1个字节,取值范围在128~127之间。
bytet型为无符号16位整数,占2个字节,取值范围在0~255之间。
short型为有符号16位整数,占2个字节,取值范围在-32,768~32,767之间。
ushort型为无符号16位整数,占2个字节,取值范围在0~65,535之间。
int型为有符号32位整数,占4个字节,取值范围在-2,147,483,648~2,147,483,647之间。
uint型为无符号32位整数,占4个字节,取值范围在0~4,294,967,295之间。
long型为64位有符号整数,占8个字节,取值范围在9,223,372,036,854,775,808~9,223,372,036,854,775,807之间。
ulong型为64位无符号整数,占8个字节,取值范围在0~18,446,744,073,709,551,615之间。
float型为32位单精度实数,占4个字节,取值范围3.4E+10的负38次方~3.4E+10的38次方之间。
double型为64位实数,占8个字节,取值范围1.7E+10的负308次方~1.7E+10的正308次方。
指针占4个字节。
注意:int占多少个字节是由编译器决定的,ANSI标准定义int是占2个字节.

五、常量的概念及分类
1、常量概述
1)整型常量,也就是整常数
2)实型常量
3)字符型常量
第六讲 不同类型的常量表示方法

1.十进制整数
1.
八进制整数:八进制形式的常量都以0开头
2.
十六进制整数:十六进制的常量都是以0x开头
3.
二进制整数:逢二进一,0b开头
4.
整型常量可以用三种样子:

2、实型常量
单精度小数:以f结尾
1.
双精度小数:十进制小数形式。注意:0.0也是实型常量。
2.
实型常量又分两种:
实型的另一种表示形式:
指数形式:上过初中的都应该知道科学计数法吧,指数形式的常量就是科学计数法的另一种表 示,比如123000,用科学计数法表示为1.23×10的5次方,用C语言表示就是1.23e5或1.23E5,注意e或E的前面必须要有数字,而且e或E后面的数字一定要是整数。

3、字符型常量
字符型常量都是用”(单引号)括起来的,其表现形式可以有两种:
1)一般形式。一个字符用”括起来,注意只能有一个字符。
\n换行,相当于敲一下回车。
\t跳到下一个tab位置,相当于按一下键盘上的tab键。
\b退格,相当于按一下backspace。
\r回车。
\f换页,光标移到到下页开头。
\输出\字符,也就是在屏幕上显示一个\字符。
\’输出’字符,也就是在屏幕上显示一个’字符。
\”输出”字符,也就是在屏幕上显示一个”字符。
\ddd1位到3位八进制数表示的字符。
2)特殊形式。特殊形式都是以\开头,它们在屏幕上不会直接显示出来,而是根据其特定的功能来显示的,这些特殊字符常量有:
例如:使用’\376’,则在屏幕上显示一个黑色的方块。 \xhh 1位到2位十六进制数表示的字符。注意x不能丢了。
4、字符串常量
字符串常量与字符常量不同的地方是,字符串常量是用”“把字符串括起来,所以’a’和”a”是不一 样的,而且系统会在字符串常量的末尾自动加一个字符串结束标志(‘\0’)。

六、变量的概念
1、变量的基本概念
所谓变量,它代表内存的某个空间,它的取值可以变的,是数据的基本单元。
变量由两要素构成:变量名与变量类型。
变量分为全局变量,局部变量。
全局变量定义在函数外部,程序开始到结束都一直在。
局部变量定义在函数内部,只能供函数使用,在函数内部有效;
数据类型常用的:整型,实型,字符型;
2、变量的定义和使用
格式: 变量类型 变量名称 ;
inta;
floatb;
charch;
//定义一个变量
格式2:变量类型 变量名称,变量名称;
//表示定义了两个相同类型的变量
//如果定义多个变量,每个变量中间使用”,”分隔, 但是最后一个变量之后不需要加逗号
inta,b;
inta,b,c,d;

七、 变量的作用域(局部、全局)
变量的作用域
局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该 函数后再使用这种变量是非法的。

1)局部变量
(1)主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。
(2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
(3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。虽然允许在不同的函数中使用相同的变量名,但是为了使程序明了易懂,不提倡在不同的函数中使用相同的变量名
关于局部变量的作用域还要说明以下几点:
全局变量也称为外部变量,它是在函数外部定义的变量。
它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数内经过说明的全局变量才能使用。
全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说 明。
2)全局变量
(1)对于局部变量的定义和说明,可以不加区分。而对于外部变量则不然,外部变量的定义和外部变量的说明并不是一回事。外部变量定义必须在所有的函数之外,且只能定义一次。 其一般形式为: [extern] 类型说明符 变量名,变量名… 其中方括号内的extern可以省去不写。
(2)而外部变量说明出现在要使用该外部变量的各个函数内,在整个程序内,可能出现多次,外部变量说明的一般形式为: extern 类型说明符 变量名,变量名,…; 外部变量在定义时就已分配了内存单元,外部变量定义可作初始赋值,外部变量说明不能再赋初始值, 只是表明在函数 内要使用某外部变量。
(3)外部变量可加强函数模块之间的数据联系,但是又使函数要依赖这些变量,因而使得函数的 独立性降低。从模块化程序设计的观点来看这是不利的, 因此在不必要时尽量不要使用全局变量。
(4)在同一源文件中,允许全局变量和局部变量同名。在局部变量的作用域内,全局变量不起作用。

对于全局变量还有以下几点说明:
(1)对于局部变量的定义和说明,可以不加区分。而对于外部变量则不然,外部变量的定义和外部变量的说明并不是一回事。外部变量定义必须在所有的函数之外,且只能定义一次。 其一般形式为: [extern] 类型说明符 变量名,变量名… 其中方括号内的extern可以省去不写。
(2)而外部变量说明出现在要使用该外部变量的各个函数内,在整个程序内,可能出现多次,外部变量说明的一般形式为: extern 类型说明符 变量名,变量名,…; 外部变量在定义时就已分配了内存单元,外部变量定义可作初始赋值,外部变量说明不能再赋初始值, 只是表明在函数 内要使用某外部变量。
(3)外部变量可加强函数模块之间的数据联系,但是又使函数要依赖这些变量,因而使得函数的 独立性降低。从模块化程序设计的观点来看这是不利的, 因此在不必要时尽量不要使用全局变量。
(4)在同一源文件中,允许全局变量和局部变量同名。在局部变量的作用域内,全局变量不起作用。

学习总结
//———C语言中的数据类型———-//
1)基本数据类型
a>整形:int
b>浮点型:
1>单精度浮点型,float
2>双精度浮点型,double
c>字符型,char
2)构造类型
a>数组
b>结构体:struct
c>共用体:union
d>枚举:enum
3)空类型void
4)指针类型*
//———–常量———-//
//什么是常量
常量,则表示一些固定的数据,也就是不能改变的数据
//常量类型
1)整型常量(int):包括了所有整数例如:50
2)浮点型常量(float\double):小数例如:5.1
3)字符常量(char):将一个符号用单引号括起来,这样构成的就是字符常量。’a’
4)字符串常量:将一个或者多个字符用双引号(”“)括起来,这样构成的就是字符串常量。”afaf”
//——–变量——–//
//什么是变量
常量表示的数据是不可以改的,而用变量表示的数据是可以经常修改的。
//如何使用变量
1)定义变量
格式: 数据类型变量名称,如
变量类型表示我所定义的这个变量可以存放什么样类型的常量
变量名称:它一个标示符,来标识我们在内存中开辟这块存储区域,方便我们以后使用
intsore ;
这一行代码就在内存中开辟一块4个字节的存储区域,它名字叫score; 这块存储区域是用来存放int类型的数据的
2)初始化: 变量第一次赋值称为初始化
score = 105;
这行代码是把105,放到名字为score的这块存储区域中
3)使用:对其进行的读/写都算是使用
printf(“score = %d\n”,score);
//变量的命名:
详细请见上=>标示符的命名
//———scanf/printf———//
标准输入/输出函数
//各种类型对应的占位符
1)int%d
2)float%f
3)char%c
4)double%lf
5)字符串(char*) %s

学习心得:
通过本章知识点的学习,了解了c语言的入门知识,掌握了c语言的基础语法,数据类型,常量,变量的定义及作用,标识符,关键字的定义,为后面C语言的学习打下了基础,更好的对这门语言进行理解,剖析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值