C语言程算课:指针与结构体的一些理解
1|0指针:
C语言指针运算中,&是取地址符号,*是解地址符号,是一对逆运算,对于一个变量a和一个指针p有下面两式成立:
我们一般认为指针的定义类型是 int* ,因此int* p表示定义指针p,* 的位置随意,可以写成int *p。
这里p就是指针,而不是说*p是指针。
打印地址:
上面的输出结果解释:&和*作为指针运算符,优先级比加减乘除高,所以第一个和第二个写法输出是一样的,一个int型占四个字节,因此加一地址加4(对比输出三、四)
在栈空间中连续定义的变量地址是连续的,&a+1是指向b的指针,解地址可以得到b的值(不建议这么写,这是一种越界行为)。
下面的例子,继续帮助理解优先级不同导致的输出结果不同:
既然提到数组那就补充些二维数组与指针的知识:
下面是二维数组的指针:
2|0结构体:
&与*优先级相同,而结构体的成员选择符号“.”的优先级要高于两者,当定义一个结构体指针并读取指向的成员时,应有如下写法:
↓结构体与指针的详细用法:
char指针可以用字符串赋值,指针保存的是第一个字符的地址,接地址可以得到第一个字符,通过加上一个常数获得字符串第i个字符。
3|0typedef 替换:
补充一些typedef用法,typedef可以替换数据类型,就是为复杂的声明定义简单的别名,与宏定义有一些差异。本身是一种储存类的关键字,与auto,extern,mutable,static,register等关键词不能出现在同一个表达式。
下面是详细用法:
不定期补充哦。
------update : 2023.03.07
__EOF__

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具