C 测验 4
以下关于指针的说法,正确的是
指针是存储变量地址的变量
指针是存储变量地址的变量,而不是存储变量值。指针可以指向数组,且指针的大小与所指向的数据类型无关。
以下代码的输出结果是
int x = 5;
int *p = &x;
printf("%d", *p);
p 指向变量 x,*p 表示解引用,输出 x 的值,即 5。
以下关于 malloc 的说法,正确的是
malloc 分配的内存位于堆区,需要手动使用 free 释放,且不会自动初始化为 0。
以下代码的输出结果是
int arr[] = {1, 2, 3, 4, 5};
printf("%d", *(arr + 2));
arr + 2 表示数组 arr 的第三个元素的地址,解引用后输出值为 3。
以下关于结构体的说法,正确的是
结构体的大小可能大于所有成员大小之和
结构体的大小可能因为内存对齐而大于所有成员大小之和。
以下代码的输出结果是
int x = 10;
int y = x++;
printf("%d %d", x, y);
x++ 是后置自增,y 的值为 10,x 自增后变为 11。
以下关于 const 关键字的说法,正确的是
const 变量可以通过指针修改,但这是不推荐的做法。
以下代码的输出结果是
int x = 5;
int y = (x > 3) ? 10 : 20;
printf("%d", y);
三元运算符 (x > 3) ? 10 : 20 判断 x > 3 为真,返回 10。
以下关于 typedef 的说法,正确的是
typedef 用于为现有数据类型定义新的别名。
以下代码的输出结果是
int x = 5;
int *p = &x;
int **pp = &p;
printf("%d", **pp);
x 的地址
*pp 解引用两次,最终输出 x 的值,即 5。

浙公网安备 33010602011771号