我正在阅读“C编程书”,我理解这个程序是如何运作的,但是,我不明白一件事。
我不明白fahr如何作为变量发挥作用。 fahr有两个值还是一个?因为我认为一旦为变量写了一个值,除非你执行命令strcpy,否则你无法改变它。也许我错了,有人可以帮我澄清一下吗?
来源:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float fahr, celsius;
int lower,upper, step;
lower = 0;
upper = 700;
step = 2;
fahr = lower;
printf("Fahrenheit\tCelsius\n");
while (fahr <= upper)
{
celsius = (5.0/9.0) * (fahr-32.0);
printf("%3.0f \t %6.1f\n", fahr, celsius);
fahr = fahr + step;
}
}
答案 0 :(得分:1)
你把我朋友的两个不同世界搞混了。
fahr
只是浮动变量。这意味着如果我们对其执行算术运算,例如赋值,加法,减法,它的值就可以改变。
另一方面,strcpy(字符串复制)将字符串指针中的字符串复制到另一个字符指针。它与您的 float 变量fahr
无关。
答案 1 :(得分:0)
当你声明一个变量例如float fahr时,你定义一个内存空间,在该空间中将保存你给变量的数字。变量fahr的内容可以使用赋值表达式(例如float = lower)更改,其中fahr的内容与较低变量的内容相同。您可以根据需要为变量赋值。为变量赋值与strcpy无关.strcpy是一个将一个字符串复制到另一个字符串的函数,例如:
char src[40];
strcpy(src, "This is a sentence ");
答案 2 :(得分:0)
fahr
只是一个普通的变量。它将几个字节的内存定义为类型float
。在C中,您可以写入任何变量;这就是语言的用途。
我想过,一旦为变量写了一个值,除非你执行命令strcpy,否则你不能改变它。
你可能正在看这样的代码
char s[] = "hello";
此处,s
是6个char
的数组。它通常被称为&#34;字符串&#34;,但这只是一种约定。对于编译器来说,它是一个数组。
你不能说像
这样的话char s2[] = s;
因为在C中你不能通过赋值来复制数组。数组的名称与其起点相关联。由于通常需要进行数组复制,因此标准库中有用于此目的的函数,例如 memcpy (3)和 - 对于NUL终止字符串 - strcpy (3)。