
C语言
文章平均质量分 50
C语言学习资料
xieychao
这个作者很懒,什么都没留下…
展开
-
C语言之修改默认对齐数
运行程序发现其大小为12,当我们将默认对齐数从默认的8修改为2时,结构体的大小随之发生了变化。在实际开发中,一般不设置奇数的对齐数。在如下代码中,计算结构体的大小。原创 2023-04-22 21:55:24 · 176 阅读 · 0 评论 -
C语言之结构体
int age;}p1,p2,p3;原创 2023-04-22 17:55:55 · 93 阅读 · 0 评论 -
C语言指针之int数组与sizeof()
当a与一个整数进行加减时,a不再是数组的地址,它是数组的第一个元素的地址,孙然地址与数组的地址相同,但表示的意义将不再相同,以上代码,实际求的的a[0]的地址大小,在不同的平台,指针地址的大小是不一样的,32位平台的地址大小为4,64位平台的地址大小为8。上图中,我们打印处了数组的每个元素的地址,发现不管是32位平台还是64位平台,数组的最后一个元素的地址与&a+1的地址都相差4个地址,这也说明了&a+1指向的是当前数组的下一个地址,这里注意与a+1进行区分,a+1指向的是数组a[1]的地址。原创 2023-04-18 00:51:40 · 443 阅读 · 0 评论 -
指针数组与数组指针的区别
这也就为什么会存在arry + 1只增加4个地址,而arryp+1增加40个地址的原因了,前者的加1步进为4个地址,加1,表示加一个int类型的大小,而后者+1,表示加一个数组地址的大小,而代码中赋值的首地址为40个字节,故+1就加了40个字节。按照c语言的运算符顺序,该变量解释为,先定义一个数组,数组里面可以存放10个元素,每个元素的类型为int*,也就是说,这是一个数组,数组里面每个元素的类型都是整数类型的指针。话不多说,直接上代码运行,运行如下代码。首先,我们需要对定义的两个变量进行解析。原创 2023-04-15 22:34:35 · 96 阅读 · 0 评论 -
C 语言指针类型探讨
在之前的文章中,我们说过,在C语言中,指针地址的大小在不同的平台大小不同,在32位平台的大小位4个字节,在64位平台的大小为8个字节,与指针的类型无关,既然如此,那为什么还要定义不同的指针类型呢?int类型的指针+1后,指针的地址却增加了4个,从原来的00F5F8C4变为了00F5F8C8,这也说明了一个int类型的大小为四个字节。综合以上输出,我们可以得出结论,在C语言中,定义了不同指针,在对指针做相关的运算时,对地址的变化是不同的,这就是定义不同指针的意义。这也说明了char类型的大小为一个字节。原创 2023-04-15 17:55:02 · 114 阅读 · 1 评论