初识C语言系列-5-完结篇-#define,指针,结构体(一)

简介: 初识C语言系列-5-完结篇-#define,指针,结构体

1、前言

终于到了初识C语言的完结篇了,这里再次祝大家五一节日快乐哈!!这个系列结束后我们将正式开始C语言的学习——初阶C语言。博主尽量及时更新,让大家可以学到更多的东西,也感谢大家的多多支持哈!!!前几天博主没有更新,有些小伙伴来催更了,感谢大家伙对我写的博客的喜爱和支持,我会更加努力的!!!有什么问题也劳烦大家可以指出,不理解的地方也要在评论区多多留言哦!最后希望大家多多支持和关注哦!那么我们开始今天的学习吧!

博主的状态哈哈哈哈

2、define定义常量和宏

define定义常量

C语言中,可以用 #define 定义一个标识符来表示一个常量。其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。


预编译又叫预处理。预编译不是编译,而是编译前的处理,编译器正式开始编译程序之前,会执行一段预处理程序(又称预处理器)专门对程序执行预处理操作。

#define 和 #include 一样,也是以“#”开头的。凡是以“#”开头的均为预处理指令,#define也不例外。

#define定义常量的语法:

#define  标识符  常量   //注意, 最后没有分号

变量名表示的是一个变量,但宏名表示的是一个常量。可以给变量赋值,但绝不能给常量赋值

如下面这个程序:

1. #include<stdio.h>
2. 
3. #define MAX 100//#define定义标识符常量
4. int main()
5. {
6. 
7. 
8.  printf("%d\n", MAX);
9. 
10. 
11.   return 0;
12. }

当我们给MAX赋值的时候就会报错了!!!

这就是说明了宏常量不能够修改

我们可以看到,#define定义的常量我们可以直接输出,其实,它也可以运算,我们可以把它理解成一个不变的数(当然,我们也可以手动改变它的数值),它可以参与数字的运算啊,放到数组充当数组长度啊,等等等等

1. #include<stdio.h>
2. 
3. #define MAX 100//#define定义标识符常量
4. int main()
5. {
6. 
7. 
8.  printf("%d\n", MAX);
9. 
10.   int a = 5 + MAX;
11.   int arr[MAX] = { 0 };
12.   printf("%d\n", a);
13. 
14.   return 0;
15. }

我们可以看到a的值变成了105

我们通过调试—>窗口—>监视来看看数组arr的下标情况:

我们可以清晰的看到,该数组的下标是从0~99,并且都被初始化为了0。

接着看呗哈哈哈哈

define定义的宏

#define定义的宏和函数有些相似,但又不一样

比如下面这个程序:

1. #include<stdio.h>
2. #define ADD(x,y) ((x)+(y))
3. int main()
4. {
5. 
6.  int sum = ADD(2, 3);
7.  printf("%d\n", sum);
8.  sum = 5 + ADD(2, 3);
9.  printf("%d\n", sum);
10. 
11.   return 0;
12. }

它所起到的作用和函数类似,但其定义和函数还是区别比较大的!!!

大家可以多去练练这个语法,说不定会有意外之喜呢!!!

加油,程序人哈哈哈。

3、指针

内存

指针是非常重要的一个知识点,希望大家能够好好的掌握!好好掌握哦!好好掌握!重要的事情说三遍!!!别不识好歹!!!

我们要想了解指针,首先要了解内存地址

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。

所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

补充一点小知识,感兴趣的同学可以了解一下哈!~



相关文章
|
8月前
|
存储 人工智能 Java
一文轻松拿捏C语言的指针的基础使用
本文介绍了C语言中的指针概念,包括直接访问和间接访问内存的方式、指针变量的定义与使用、取址运算符`&`和取值运算符`*`的应用,帮助读者深入理解指针这一C语言的核心概念。君志所向,一往无前!
154 0
|
10月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
324 7
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
10月前
|
存储 网络协议 编译器
【C语言】深入解析C语言结构体:定义、声明与高级应用实践
通过根据需求合理选择结构体定义和声明的放置位置,并灵活结合动态内存分配、内存优化和数据结构设计,可以显著提高代码的可维护性和运行效率。在实际开发中,建议遵循以下原则: - **模块化设计**:尽可能封装实现细节,减少模块间的耦合。 - **内存管理**:明确动态分配与释放的责任,防止资源泄漏。 - **优化顺序**:合理排列结构体成员以减少内存占用。
815 14
|
10月前
|
存储 编译器 C语言
【C语言】结构体详解 -《探索C语言的 “小宇宙” 》
结构体通过`struct`关键字定义。定义结构体时,需要指定结构体的名称以及结构体内部的成员变量。
527 10
|
10月前
|
存储 编译器 C语言
【C语言】指针大小知多少 ?一场探寻C语言深处的冒险 !
在C语言中,指针的大小(即指针变量占用的内存大小)是由计算机的体系结构(例如32位还是64位)和编译器决定的。
1215 9
|
10月前
|
安全 程序员 C语言
【C语言】指针的爱恨纠葛:常量指针vs指向常量的指针
在C语言中,“常量指针”和“指向常量的指针”是两个重要的指针概念。它们在控制指针的行为和数据的可修改性方面发挥着关键作用。理解这两个概念有助于编写更安全、有效的代码。本文将深入探讨这两个概念,包括定义、语法、实际应用、复杂示例、最佳实践以及常见问题。
312 7
|
11月前
|
存储 算法 程序员
C 语言指针详解 —— 内存操控的魔法棒
《C 语言指针详解》深入浅出地讲解了指针的概念、使用方法及其在内存操作中的重要作用,被誉为程序员手中的“内存操控魔法棒”。本书适合C语言初学者及希望深化理解指针机制的开发者阅读。
|
11月前
|
存储 程序员 编译器
C 语言数组与指针的深度剖析与应用
在C语言中,数组与指针是核心概念,二者既独立又紧密相连。数组是在连续内存中存储相同类型数据的结构,而指针则存储内存地址,二者结合可在数据处理、函数传参等方面发挥巨大作用。掌握它们的特性和关系,对于优化程序性能、灵活处理数据结构至关重要。
|
11月前
|
算法 C语言
C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项
本文深入讲解了C语言中的文件操作技巧,涵盖文件的打开与关闭、读取与写入、文件指针移动及注意事项,通过实例演示了文件操作的基本流程,帮助读者掌握这一重要技能,提升程序开发能力。
645 3
|
11月前
|
程序员 编译器 C语言
C语言中的预处理器指令,涵盖其基本概念、常见指令(如`#define`、`#include`、条件编译指令等)、使用技巧及注意事项
本文深入解析C语言中的预处理器指令,涵盖其基本概念、常见指令(如`#define`、`#include`、条件编译指令等)、使用技巧及注意事项,并通过实际案例分析,展示预处理器指令在代码编写与处理中的重要性和灵活性。
503 2