
笔记
1mbackzzz 1mbackzzz
这个作者很懒,什么都没留下…
展开
-
考核纠错
int main() { int a[3][2] = { (0, 1 ), ( 2, 3 ), (4, 5 ) }; int *p; p = a[0]; printf("%d\n", p[0]); system("pause"); return 0;}输出答案为____.考核的时候没注意到数组赋初值的时候里头是小括号,导致我做错了,才发现把很基础的逗号表达式给忘记了。“表达式1,表达式2,……,表达式n”逗号表达式的值为表达式n的值。逗号运算符的结原创 2021-12-08 22:06:39 · 90 阅读 · 0 评论 -
区分一些概念
结构体与共用体最大的区别就是分配内存的不同。结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。一、结构体struct各成员各自拥有自己的内存,各自使用互不干涉,同时存在的,遵循内存对齐原则。一个struct变量的总长度等于所有成员的长度之和。二、联合体union各成员共用一块内存空间,并且同时只有一个成员可以得到这块内存的使用权(原创 2021-12-07 17:53:42 · 189 阅读 · 0 评论 -
关于指针的一道习题
考核中遇到这样一个问题int main() { int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); system("pause"); return 0;}在考核中第二步不知道该怎么理解,经查阅后,(&a+1)的地址是数组a的首地址再加上sizeof(a),再将这整个地址转化为int型,所以(ptr-1原创 2021-12-07 17:43:28 · 224 阅读 · 0 评论 -
数组赋初值里头如果有小括号该怎么办?
上周实验室考核考到了这么一道题int main() { int a[3][2] = { (0, 1 ), ( 2, 3 ), (4, 5 ) }; int *p; p = a[0]; printf("%d\n", p[0]); system("pause"); return 0;}输出答案为____.考核的时候没注意到数组赋初值的时候里头是小括号,导致我做错了,当时看到错了人都傻了,才发现把很基础的逗号表达式给忘记了。“表达式1,表达式2,……,原创 2021-12-07 13:35:29 · 556 阅读 · 0 评论