小编Jef*_*ski的帖子

c ++:指针值与指向变量的地址不同

我只是做了一个小愚蠢的程序,用一个指针传递一个变量包含在另一个变量中的值,就像对指针本身的介绍一样.我在分配之前和之后打印了所涉及的所有三个变量的值和位置.但是,作为指针中包含的值,我得到的地址不同于它指向的变量,我只是无法理解为什么.

这是我的主要计划:

#include <iostream>
#include "01.Point.h"

using namespace std;

int main() 

{

    int a,b;

    cout << "Insert variable's value: ";

    cin >> a;

    int * point;

    cout << "Before assignment:" << endl;

    printeverything (a,b,point);

    point = &a;

    b = * point;

    cout << "After assignment:" << endl;

    printeverything (a,b,point);

    cout << endl;

}
Run Code Online (Sandbox Code Playgroud)

这是我的功能实现:

#include <iostream>
#include "01.Point.h"

using namespace std;

void printeverything (int a, int b, int * c)    {

    cout << "First variable's value: " << a << …
Run Code Online (Sandbox Code Playgroud)

c++ variables pointers memory-address

1
推荐指数
1
解决办法
480
查看次数

我应该在main函数内部或外部声明变量吗?

在C++中,建议在主程序内部或其他地方之前声明全局变量?我的意思是,有什么区别

#include <iostream>

int variable;

int main()
{    //my program
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

#include <iostream>

int main()
{
     int variable;
     //my program
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

在哪种情况下我应该使用哪一个?

c++ program-entry-point variable-declaration

0
推荐指数
1
解决办法
2万
查看次数

怀疑ghci简单的算术

我开始使用Miran Lipovaca着名的书来学习Haskell ,但是在与格拉斯哥Haskell编译器的交互式shell(ghci)的第一次交互中,我的好奇心阻止了我.

特别是,我开始通过划分两个整数来获得浮点十进制数,基本上看看Haskell如何自动管理它们并了解更多关于它的自动转换.

?> 1/3
0.3333333333333333
?> 4/3
1.3333333333333333
?> 3424/3
1141.3333333333333
Run Code Online (Sandbox Code Playgroud)

这些告诉我Haskell总共使用了17位数字(或18个字符,包括点?),无论它们是否重要.然而,这些也发生了

?> 14/3
4.666666666666667
?> 34/3
11.333333333333334
?> 44/3
14.666666666666666
Run Code Online (Sandbox Code Playgroud)

为什么第一个缩短一位数?为什么其他人错误地四舍五入?

可能这是一个愚蠢的问题,但我想知道这些基本事情的答案,我可以从更深入地理解语言(或翻译?)的工作方式开始,通过了解更多内容.

floating-point haskell decimal rounding

0
推荐指数
1
解决办法
94
查看次数