# c_learn **Repository Path**: osoulmate/c_learn ## Basic Information - **Project Name**: c_learn - **Description**: 数据结构学习 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-06 - **Last Updated**: 2025-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 3种写法相同的指针 ``` int *p int* p int * p ``` ### 数组名是一个指向数组中第一个元素的常量指针 ### 字符数组2种声明方式的区别: 在采用字符串常量对字符数组进行初始化的过程中,在内存中进行存储时会自动在字符串的后面添加一个结束符‘\0’,所以得到的字符数组长度是字符串常量的长度加1;而采用字符常量列表的方式对字符数组进行初始化就不会在最后添加一个结束符,所以利用这种方式定义的字符数组的长度就是字符常量列表中字符的个数。 字符的初始化方法可以分为两种: (1) 将字符逐个赋给数组中的每个元素; char c [5] = {'c', 'h', 'i', 'n', 'a'}; 这是把5个字符分别赋给 c [0] ~ c [4] 这 5 个元素中。 (2) 直接用字符串常量给数组赋初值。 char c [6] = "china"; ### 第一个枚举成员的默认值为整型的 0 ### 数组指针指向的变与不变 ``` typedef struct{ ElemType *top; ElemType *base; int length; }SStack; SStack S; *(S.top-1) 意思为:返回栈顶元素的值,栈顶指针不变 *--S.top 意思为:栈顶指针减1,将栈顶元素赋给变量 ```