C语言拓展笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boke14122621/article/details/72082906

一维数组
数组:数组是一组有序数据的集合,数组中每一个元素的类型相同,用数组名和下标来唯一确定数组中的元素。
一维数组的定义:类型说明符 数组名[下标常量表达式];

二维数组
二维数组的定义:类型说明符 数组名[常量表达式][常量表达式];

函数
1 无参函数
定义格式:
数据类型 函数名 /现代风格是:函数名(void) /
{ 函数体 (说明部分 + 语句) }
2 有参函数
定义格式:
数据类型 函数名(形参表) /现代风格是:函数名(带类型形参表) /
{ 函数体 (说明部分+ 语句) }
函数的返回值通过函数体中的 return 语句获得。
形式: return (x); return (x+y); return (x>y?x:y); //语句中圆括号亦可省略。
注意,如果函数值类型与 return 语句表达式值的类型不一致,以函数类型为准,数值型会自动进行类型转换。
如果明确表示不需返回值,可用 void 作函数的数据类型。
3 函数的调用
函数和变量一样,在其主调函数中,也必须先说明后使用。
注意关系: 函数定义——制造函数;
函数使用——说明准备使用;
函数调用——使用函数;

局部变量与全局变量
1 局部变量
函数内部或复合语句内定义的变量。所有形参都是局部变量。局部变量只在本函数或本复合语句内才能使用,在此之外不能使用。
2 全局变量
在函数之外定义的变量。
extern 默认允许本源文件中其他函数及其他源文件使用全局变量。
static 只限本源文件中使用。有效作用范围 从定义变量位置开始直到本源文件结束。
如果要将全局变量作用范围扩展到其他源文件,只需在使用这些变量的文件中对变量用 extern 加以说明。

编译预处理
1 宏(Macro)
 不带参数的宏
一般形式: #define 标识符 字符串
作用:用标识符(称为宏名)来代替字符串。在预编译时,将源程序中出现的宏名,替换为字符串 ,这一替换过程称为“宏展开”。
 带参数的宏
一般形式:#define 宏名(参数表) 字符串
带参数的宏在展开时,不是进行简单的字符串替换,而是进行参数替换。
2 文件包含 #include
文件包含命令的一般格式是:#include “文件名”。
作用:预处理时,把文件名指定的文件内容复制到本文件,再对合并后的文件进行编译。
3 条件编译
一般情况下,源程序中的所有行均参加编译,但有时希望部分行在满足一定条件才进行编译,即对部分内容指定编译的条件,称为条件编译。
有以下几种条件编译命令
 #ifdef

ifdef 标识符

程序段 1

else

程序段 2

endif

ifdef 标识符

程序段 1

endif

其中 标识符 用#define 命令定义。
 #ifndef
与#ifdef 相反的条件编译。
 #if

if 表达式

程序段 1

else

程序段 2

endif

指针
指针是 C 语言的重要概念,也是 C 语言的特色。使用指针,可以使程序简洁高效。在一般程序中,指针被广泛使用。
指针 pointer 是一个变量的地址。
指针变量,是一个变量,其值是另一个变量的地址。

结构体
结构体 structure 是一种数据类型,它把互相联系的数据组合成一个整体。
 定义结构体类型
typedef struct {
char name[20];
int age;
}struStudent;
 定义结构体变量:
struStudent student1, student2;
 结构体变量的引用
结构体变量名.成员名
结构体指针 通过指向运算符 -> 引用结构体中的成员。

共用体
当需要把不同类型的变量存放到同一段内存单元,或对同一段内存单元的数据按不同类型处理,则需要使用 共用体 数据结构。
例:把一个整型变量、一个字符型变量、一个实型变量放在同一个地址开始的内存单元中,
共用体的定义形式:
union 共用体名{
成员列表;
}变量列表;

枚举类型
如果一个变量只有几种可能的值,可以定义为枚举类型。
枚举:将变量可能的值一一列举出来,变量的值只能取列举出来的值之一。
用关键字 enum 定义枚举类型 例
typedef enum {
sun = 0,
mon,
tue,
wed,
thu,
fri,
sat,
}weekday ;

用 typedef 定义类型
关键字 typedef 用于定义一种新的数据类型,它代表已有数据类型,是已有数据类型的别名。 例:
typedef int INTEGER; // 定义新数据类型 INTEGER 它代表已有数据类型 int
typedef float REAL; // 定义新数据类型 REAL 它代表已有数据类型 float
通过上述定义后,以下两行等价:
int i, j ; float a, b;
INTEGER i, j; REAL a, b;

扫描二维码关注公众号,回复: 5098358 查看本文章

位运算
C 语言提供的位运算符:
& :按位与;
| :按位或;
^ :按位异或;
~ :取反;
<<:左移;
“>>”:右移;

猜你喜欢

转载自blog.csdn.net/boke14122621/article/details/72082906