#include <stdio.h>
int main(void)
{
char b[5];
scanf("%4s%4s", b, b);
printf("%s", b);
}
标量对象的准确定义是什么?b
在这种情况下是一个标量对象吗?
引用ISOIEC 9899:2018(C18),6.2.5(类型)21:
"算术类型和指针类型统称为标量类型。数组类型和结构类型统称为集合类型。)"
47) "请注意,集合类型不包括联合类型,因为一个具有联合类型的对象一次只能包含一个成员。"
"标量对象的准确定义是什么?"
标量对象是指只由单一实体组成的对象,如指针和算术类型的对象。
"是
b
在这种情况下,一个标量对象?"
b
是不是一个 标量 对象作为一个标量对象只能容纳一个单一实体。数组如 b
是"碎石". 数组到指针的衰减在 scanf("%4s%4s", b, b);
和 printf("%s", b);
不变 b
仍然是数组类型。
根据 C11标准,"算术类型和指针类型统称为标量类型。数组和结构类型统称为集合类型"
所以没有。b
不是一个标量,因为它是一个数组。 如果它是一个数字或指针(如 char* b
),它将是一个标量类型。