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