我的代码:
#include <stdio.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE ='\n';
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
上面的代码输出:
value of area: 50
Process returned 0 (0x0) execution time : 2.909 s
Press any key to continue.
插入了新行,但是当我更改 NEWLINE="\n"时,尽管知道它是 char 类型,但编译器没有提示错误,也没有打印出换行符。为什么???
另外,我将代码修改为,
#include <stdio.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE ='\n';
const char k="hjk";
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
printf("%c", k);
return 0;
}
输出仅是计算出的面积和新行,但不打印出 k。我也觉得这很奇怪!可以给点建议吗?
请多多提出建议并指出我的错误,因为我是 C 语言的初学者。
最佳答案
问题是您正在尝试将 string
保存为 char
,因此您必须更改 const char k = "hjk"
到 const char k[]="hjk"
并使用 %s
而不是 %c
打印它。
#include<stdio.h>
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE ='\n';
const char k[]="hjk";
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
printf("%s", k);
return 0;
}
一些说明:如果您保存“string
”而未指定它是字符数组 char[]
,如果您尝试将其打印为 char %c
生成器将发出警告(警告:使用类型为“char [4]”的表达式初始化“const char”的整数转换不兼容的指针
),并且如果您尝试将其打印为字符数组 %s
(string
),您将收到段错误
。
关于c - C 中的换行常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64819479/