我一直在努力解决C ++中的家庭作业问题。
问题如下:
编写一个执行以下每个任务的语句。假设num1是一个浮点变量。还假设ar1 [100]和ar2 [100]是char:
类型的数组我的问题是2号。问题是指针是双精度但变量num1是浮点数。
我的另一个问题是,如果不使用for循环,我无法看到如何完成6。
到目前为止,我已经得到了这个:这给了我奇怪的值,如果完成但如果我将num1声明为double并将2更改为ptr =& num1一切正常。
请帮助我解决这个问题两天。
答案 0 :(得分:2)
double
和float
都是浮点类型。因此,如果你的老师说num1是一个“浮点类型”,那么你应该可以使用double来逃避。如果您的老师说要使用float
,那么您就会被卡住。
6要求你做一些非常具体的事情。它将涉及一些谷歌搜索,但它可以作为1班轮。
答案 1 :(得分:2)
对于这个问题:
将变量
float num1
的地址指定给double* ptr
。
你确定你应该分配地址而不是值吗?将变量的地址分配给完全不同类型的指针是没有意义的。
您还应该知道,如果您使用C++
作为标记,则您应该更喜欢使用C++
- 样式广告(reinterpret_cast<type>(variable)
等)来使用C-风格演员。
答案 2 :(得分:1)
double
是一个浮点值,因此ptr = &num1
应该没问题。另一方面,double *ptr = new double;
不仅声明指向double
的指针,而且还初始化它。 double* ptr
足以作为声明;
将float*
投射到double*
可能不会产生任何有用的内容,因为float
和double
可能具有不兼容的表示(特别是它们通常具有不同的大小)。
答案 3 :(得分:1)
请参阅double
是双精度(binary64)浮点IEEE 754,而float
是由同一标准定义的单精度(binary32)浮点。
所以只需将num1声明为double。
答案 4 :(得分:0)
6是strcpy_s(arr2,arr1);
答案 5 :(得分:-1)
对于6:
string.h:strcpy()
,strncpy()
和strlcpy()
- google他们。