int a(const void buf) 此时 b=[10],c=[10],a(b){b = (const void *)c}这个写法是否合法 这样去写 最后c的值赋给谁了
时间: 2024-04-16 21:25:06 浏览: 70
第10章 文件系统编程.pdf
首先,函数声明 `int a(const void buf)` 中的参数 `buf` 是一个常量 `void` 类型的参数,而不是指针类型。在 C++ 中,常量 `void` 类型的参数通常用于接收任意类型的数据,但是由于它是一个不完整的类型,无法进行指针运算或访问其具体内容。
接下来,在函数调用 `a(b)` 中,你将数组 `b` 作为参数传递给函数 `a`。由于 `b` 是一个数组,它会自动转换为指向数组首元素的指针。然而,由于函数声明中的参数类型不匹配,这样的调用会导致类型不匹配的错误。
此外,在函数体内部的赋值操作 `b = (const void *)c` 也是不合法的。在 C++ 中,数组名本身是不可赋值的,它代表了数组的首地址,无法直接改变。
综上所述,根据你提供的信息,这样的写法是不合法的。如果你想将数组 `c` 的值赋给 `b` 或者进行其他操作,请提供更多的上下文信息,我可以帮助你找到正确的解决方案。
阅读全文