C语言初识-关键字-操作符-指针-结构体

简介: C语言初识-关键字-操作符-指针-结构体

1. 关键字

1.1 typedef(类型重定义)

看下面代码:typedef可以将一个类型重命名,举一个不恰当的例子,可以将int自定义为ZX,这样整型就有两个名字,一个是int,一个是ZX,都可以声明整型变量。

这种用法多用在复杂的变量中:

typedef struct Node {
  int data;
  int price
}Node;
int main()
{
  //重定义后,我们声明变量的工作量就变小了!
  struct Node b = { 11,15 };
  Node a = { 11,55 };
}

1.2 static

static可以修饰:局部变量、全局变量、函数

1.2.1 修饰局部变量

先看一段简单的代码运行结果:

static修饰局部变量a,是改变了变量的存储类型。本来局部变量是放在栈区的,被static修饰后存放在内存的静态区了,因为存储类型的改变,从而导致生命周期变长。但是不影响作用域,a只能在该函数内部使用。

1.2.2 修饰全局变量

全局变量是具有外部链接属性的,而static修饰全局变量后,将外部链接属性变成了内部链接属性。此时的全局变量只能在自己所在的.c文件中使用,其他文件无法链接使用。

1.2.3 修饰函数

函数具有外部链接属性,static修饰函数后,将外部链接属性改变成了内部链接属性,使得这个函数只能在自己所在的.c文件中使用,其他.c文件无法链接使用。

2. 操作符

2.1 条件操作符

       条件操作符又叫三目操作符:exp1?exp2:exp3

如果exp1表达式结果为真,输出exp2表达式的值,否则输出exp3表达式的值。

用好三目运算符能够简化代码逻辑。

2.2 逗号表达式

(exp1,exp2,exp3,exp4)从左往右依次计算,结果为最后一个表达式的结果。

3. 指针

指针就是地址,地址就是指针

下面为指针最基本的用法:

4. 结构体

当我们修饰复杂的数据类型时,可以考虑使用结构体,比如:形容一个人的名字和年龄。

注:*pa等价于a。

目录
相关文章
|
24天前
|
C语言
【c语言】指针就该这么学(1)
本文详细介绍了C语言中的指针概念及其基本操作。首先通过生活中的例子解释了指针的概念,即内存地址。接着,文章逐步讲解了指针变量的定义、取地址操作符`&`、解引用操作符`*`、指针变量的大小以及不同类型的指针变量的意义。此外,还介绍了`const`修饰符在指针中的应用,指针的运算(包括指针加减整数、指针相减和指针的大小比较),以及野指针的概念和如何规避野指针。最后,通过具体的代码示例帮助读者更好地理解和掌握指针的使用方法。
45 0
|
21天前
|
存储 C语言
如何在 C 语言中实现结构体的深拷贝
在C语言中实现结构体的深拷贝,需要手动分配内存并逐个复制成员变量,确保新结构体与原结构体完全独立,避免浅拷贝导致的数据共享问题。具体方法包括使用 `malloc` 分配内存和 `memcpy` 或手动赋值。
30 10
|
26天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
34 10
|
21天前
|
存储 大数据 编译器
C语言:结构体对齐规则
C语言中,结构体对齐规则是指编译器为了提高数据访问效率,会根据成员变量的类型对结构体中的成员进行内存对齐。通常遵循编译器默认的对齐方式或使用特定的对齐指令来优化结构体布局,以减少内存浪费并提升性能。
|
23天前
|
C语言
【c语言】指针就该这么学(3)
本文介绍了C语言中的函数指针、typedef关键字及函数指针数组的概念与应用。首先讲解了函数指针的创建与使用,接着通过typedef简化复杂类型定义,最后探讨了函数指针数组及其在转移表中的应用,通过实例展示了如何利用这些特性实现更简洁高效的代码。
15 2
|
23天前
|
C语言
如何避免 C 语言中的野指针问题?
在C语言中,野指针是指向未知内存地址的指针,可能引发程序崩溃或数据损坏。避免野指针的方法包括:初始化指针为NULL、使用完毕后将指针置为NULL、检查指针是否为空以及合理管理动态分配的内存。
|
23天前
|
C语言
C语言:哪些情况下会出现野指针
C语言中,野指针是指指向未知地址的指针,通常由以下情况产生:1) 指针被声明但未初始化;2) 指针指向的内存已被释放或重新分配;3) 指针指向局部变量,而该变量已超出作用域。使用野指针可能导致程序崩溃或不可预测的行为。
|
25天前
|
编译器 C语言
共用体和结构体在 C 语言中的优先级是怎样的
在C语言中,共用体(union)和结构体(struct)的优先级相同,它们都是用户自定义的数据类型,用于组合不同类型的数据。但是,共用体中的所有成员共享同一段内存,而结构体中的成员各自占用独立的内存空间。
|
25天前
|
存储 C语言
C语言:结构体与共用体的区别
C语言中,结构体(struct)和共用体(union)都用于组合不同类型的数据,但使用方式不同。结构体为每个成员分配独立的内存空间,而共用体的所有成员共享同一段内存,节省空间但需谨慎使用。
|
23天前
|
编译器 C语言
【c语言】指针就该这么学(2)
本文详细介绍了指针与数组的关系,包括指针访问数组、一维数组传参、二级指针、指针数组和数组指针等内容。通过具体代码示例,解释了数组名作为首元素地址的用法,以及如何使用指针数组模拟二维数组和传递二维数组。文章还强调了数组指针与指针数组的区别,并通过调试窗口展示了不同类型指针的差异。最后,总结了指针在数组操作中的重要性和应用场景。
17 0