我可以吗
write(&'\n', 1);
并且相当于
char a = '\n';
write(&a, 1);
你会如何以时尚的方式解决这个问题?
我想用一个只将char数组作为第一个参数的函数编写换行符,并在第二个参数中使用它的维度(必须指定维度,因为\0
是一个有效的可写字符)
答案 0 :(得分:1)
正如其他人已经指出的那样,你不能取字符文字的地址。
即使你可以,它也是错误的类型,因为字符数组通常必须是零终止的。
您正在寻找的是:
写(“\ n”,1);
答案 1 :(得分:1)
你可以这样做:
write("\n", 1);
答案 2 :(得分:0)
你不能取字符文字的地址的原因是因为编译器实际上用字符实际的ASCII值替换它,在本例中是10.所以你的代码实际上是:
write(&10, 1);
你不能取一个数字的地址,因为它很可能不存储在内存中,而是实际生成的代码的一部分。
答案 3 :(得分:0)
你要问的是两件事:
'\n'
是一个字符文字,将被视为整数文字。
char a
是一个字符变量。
您可以获取变量的地址,而不是文字。