
c语言
小宋学习备忘录
这个作者很懒,什么都没留下…
展开
-
数组指针和指针数组有什么区别?
例中,首先声明了数组指针p,长度为4个int元素,当执行p=b后,此时p的首地址变成了b[0]的首地址,也就是数组b的首地址,而在printf的时候,有一个**(++p)的操作,如何对数组指针执行++操作,相当于数组中的所有值都向后移4个int所占的空间,即移动到了5的首地址,因此++后的**p=[5,,6,7,8],所以打印输出最终答案为5.,它表示的是一个指针,这个指针指向的是一个数组,它的重点是指针。这里要讲一下*p就是指向数组的首地址,而要解析地址,就加了一个*,为**p;原创 2024-05-08 21:38:33 · 277 阅读 · 1 评论 -
C语言中 struct与 union的区别是什么?
1. 结构体与联合体虽然都是由多个不同的数据类型成员组成的,但不同之处在于联合体中所有成员共 用一块地址空间,即联合体只存放了一个被选中的成员,而结构体中所有成员占用空间是累加的, 其所有成员都存在,不同成员会存放在不同的地址。假设在32位系统中,对于联合体union,里面占字节最多的是int k[5],即4x5=20字节,又因为最长的类型为double8字节,因此要8字节对齐,即要为8的倍数,因此满足的最小长度为24字节。举个例子:下面这段代码的执行结果是多少。因此最终的执行结果是24+40=64。原创 2024-04-26 08:26:45 · 599 阅读 · 1 评论