C语言易混淆、简单算法、结构体题目练习、常见关键字总结-2

简介: C语言易混淆、简单算法、结构体题目练习、常见关键字总结

C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1

https://developer.aliyun.com/article/1506622


四、C语言常见关键字

1.const关键字

在C语言中通常我们把const关键字称作只读变量,不能通过变量本身修改它的数值,但是可以通过其他方式去修改,比如通过地址

const在笔试题中经常以下面的4种方式出现,问哪些能修改,哪些不能修改

我们只需要记住一个原则,就近原则,const靠近谁,修饰的就是谁


第一个和第二个一样,const放在前面和后面都是在星号前面,靠近星号,所以它们修饰的是*p,


也就是指针p可以修改,但是p指向的内存不能修改


第三个const靠近p,所以它修饰指针p,也就是指针p不能修改,但是p指向的内存可以修改


第四个综合了前面三个,指针p不能修改,p指向的内存也不能修改


2.static关键字在C语言中的作用

static关键字有三个主要作用:

1.修饰全局变量

2.修饰函数

3.修饰局部变量

(1)首先是修饰全局变量,就是变量只能在本文件中使用,不能在其他文件中使用

代码示例:vi 1.c

vi 2.c

编译:gcc 1.c 2.c -o main

./main

编译结果:

假设用上static关键字

编译出错:因为num被static修饰,只能在1.c文件中使用

(2)其次,可以用static修饰函数,作用也差不多,函数只能在本文件中调用

比如这次在2.c中用static修饰函数

编译的时候又会出错:因为在1.c中无法使用2.c中的函数

(3)static修饰局部变量,可以改变变量的生命周期,直到程序运行结束时才会被释放

经典笔试题示例:num存放在栈区,函数调用完会释放

编译结果:

用static修饰:num存放在静态数据区,程序运行结束才释放

编译结果:

相关文章
|
28天前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
45 1
|
1月前
|
搜索推荐 C语言
【排序算法】快速排序升级版--三路快排详解 + 实现(c语言)
本文介绍了快速排序的升级版——三路快排。传统快速排序在处理大量相同元素时效率较低,而三路快排通过将数组分为三部分(小于、等于、大于基准值)来优化这一问题。文章详细讲解了三路快排的实现步骤,并提供了完整的代码示例。
60 4
|
22天前
|
存储 网络协议 编译器
【C语言】深入解析C语言结构体:定义、声明与高级应用实践
通过根据需求合理选择结构体定义和声明的放置位置,并灵活结合动态内存分配、内存优化和数据结构设计,可以显著提高代码的可维护性和运行效率。在实际开发中,建议遵循以下原则: - **模块化设计**:尽可能封装实现细节,减少模块间的耦合。 - **内存管理**:明确动态分配与释放的责任,防止资源泄漏。 - **优化顺序**:合理排列结构体成员以减少内存占用。
108 14
|
26天前
|
存储 编译器 C语言
【C语言】结构体详解 -《探索C语言的 “小宇宙” 》
结构体通过`struct`关键字定义。定义结构体时,需要指定结构体的名称以及结构体内部的成员变量。
121 10
|
27天前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
1月前
|
存储 数据建模 程序员
C 语言结构体 —— 数据封装的利器
C语言结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起,形成一个整体。它支持数据封装,便于管理和传递复杂数据,是程序设计中的重要工具。
|
1月前
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
130 13
|
1月前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
62 11
|
28天前
|
存储 缓存 算法
C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力
本文探讨了C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力。文章还分析了数据结构的选择与优化、算法设计的优化策略、内存管理和代码优化技巧,并通过实际案例展示了C语言在排序和图遍历算法中的高效实现。
43 2
|
28天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
44 1