关于SI语言的问题 - 页 2

 

谢谢你,我已经喜欢这种语言了。

需要一点时间来掌握它,关于这个问题的提示很有用

我不知道这是否重要,但它是c而不是c++。
 
#include "pch.h"
#include <iostream>
#include <cstdlib>

using namespace std;

int* Foo(int i)
{
        int* x = (int*)malloc (sizeof(int));
        *x = i;
        return x;
}

int main()
{
        int* x = Foo(5);
        cout << *x;
        free (x);
        return 0;
}

这也是一样的,但是是C语言风格。

 

顺便说一下,例子都将来自这里https://minepy.readthedocs.io/en/latest/libmine.html

它正在被移植,用于热身

C API — minepy 1.2.4.dev documentation
  • minepy.readthedocs.io
This chapter describes the mine C library. These functions and structures are declared in the header file , located in the folder. You need to add in your C source files and link your program with . Defines¶ EST_MIC_APPROX ¶ Original estimator described in DOI: 10.1126/science.1205438. EST_MIC_E ¶ Estimator described in DOI: arXiv:1505.02213...
 
Vladimir Simakov:

我在函数中分配了内存,并在我传递引用的变量的范围内释放了它。

我没有看到你的帖子,显然你是和我同时写的,我正试图解释同样的事情

20年前,当我学习C++时,我就是这样学会使用指针的。

- 声明一个指针 - 指针的值是一个内存单元的地址

- 解除对一个指针的引用会得到一个值,这个值被储存在一个地址等于指针的存储单元中。

- 当取消指针时,描述指针类型的字节数将被吞噬(写入)。 如果指针类型是简单的(int, double...),我们将用4或8个字节工作--这里非常简单。 如果我们有一个复杂的类型--结构,将执行类似的操作--用内存单元工作。


大约如此,正如他们所说的 "在手指上" ))))


SZZ: 对象的指针和函数的工作方式类似,但函数(方法)的调用是另外形成的,也就是说,在取消引用指针时,编译器将调用函数,而不是处理数据。

 
Igor Makanu:

我没有看到你的帖子,显然你是和我同时写的,我正试图解释同样的事情

20年前,当我学习C++时,我就是这样学会使用指针的。

- 声明一个指针 - 指针的值是一个内存单元的地址

- 解除对一个指针的引用会得到一个值,这个值被储存在一个地址等于指针的存储单元中。

- 当取消指针时,描述指针类型的字节数将被吞噬(写入)。 如果指针类型是简单的(int, double...),我们将用4或8个字节工作--这里非常简单。 如果我们有一个复杂的类型--结构,将执行类似的操作--用内存单元工作。


大约如此,正如他们所说的 "在手指上" ))))


SZZ:指向对象的指针和函数的操作类似,但函数(方法)调用是另外形成的,也就是说,编译器将在取消引用指针的同时调用一个函数,而不是对数据进行操作。

没有。该函数将返回在该函数内分配的内存的指针。当取消引用指针时,将不会有额外的函数调用,因为指针是内存中实体的第一个字节的地址。

当释放内存时,内存管理器会将引用上的内存标记为free + type size,仅此而已。

 
Vladimir Simakov:

没有。该函数将返回一个指向内存的指针,该指针将被分配到函数内部。而当取消引用指针时,将不会有额外的函数调用,因为指针是内存中实体的第一个字节的地址值。

当释放内存时,内存管理器会将引用上的内存标记为free + type size,仅此而已。

我写了指针如何工作的一般原则。

好了,我们到此为止吧,否则这个话题将陷入关于谁写了什么以及他怎么想的讨论中。

SZS: 我总是说我不善于解释,这是我写的一个例子https://metanit.com/sharp/tutorial/8.3.php , 夏普的语法也是这样的

Указатели | C#
  • metanit.com
Если вы программировали на С/С++, то, возможно, вы знакомы с таким понятием как . Указатели позволяют получить доступ к определенной ячейке памяти и произвести определенные манипуляции со значением, хранящимся в этой ячейке. В языке C# указатели очень редко используются, однако в некоторых случаях можно прибегать к ним для оптимизации...
 
Maxim Dmitrievsky:
void quicksort(double *a, int *idx, int l, int u)
{
  int i, m, idx_temp;
  double a_temp;

  if (l >= u)
    return;

  m = l;
  for (i=l+1; i<=u; i++)
    {
      if (a[i] < a[l])
        {
          ++m;

          idx_temp = idx[m];
          idx[m] = idx[i];
          idx[i] = idx_temp;

          a_temp = a[m];
          a[m] = a[i];
          a[i] = a_temp;
        }
    }

  idx_temp = idx[l];
  idx[l] = idx[m];
  idx[m] = idx_temp;

  a_temp = a[l];
  a[l] = a[m];
  a[m] = a_temp;

  quicksort(a, idx, l, m-1);
  quicksort(a, idx, m+1, u);
}

这不是更容易吗?

#python

list.sort()

请务必参阅https://www.youtube.com/watch?v=vHeeXI84GIA

不要再从一篇文章到另一篇文章,从一种语言到另一种语言,抓紧时间吧

 
Кеша Рутов:

这不是更容易吗?

#python

list.sort()

请务必参阅https://www.youtube.com/watch?v=vHeeXI84GIA

不要再从一篇文章到另一篇文章,从一种语言到另一种语言,抓紧时间吧

你认为蟒蛇本身是从哪里来的?

请务必看一看...并进一步研究了这些链接,发现--"在学校超过10天的视频课程"......笑了。继续前行))。

 
Dmitry Fedoseev:

你认为蟒蛇本身是从哪里来的?

一定要把它找出来...并进一步研究了这些链接,发现--"在学校超过10天的视频课程"......笑了。继续前行))。

好吧,用C语言写,或者,最好用Asembler写,交易系统和机器学习。 我们会在100年后,在下辈子,当你写出第一个原型时再谈...


我并不反对C和ASM,问题是为了什么目的?防火软件、操作系统、控制器、新内核等等......没办法,但是C语言的应用软件很难,没有C语言的线程,对于不同的操作系统,一切都不同,这不是一个写防火墙和病毒的论坛,对于TC和MO,世界标准是python,在紧要关头是java/sysharp。而马克西姆是一个著名的互联网冲浪者,只是到处冲浪寻找 "有趣的",就像一个学龄前儿童,在这里和那里,阅读摘要,挑选聪明的词来显得科学和寻找更多,这样的活动没有好结果,对于一个成年男子,你只能欺骗自己。如果他的收入来源用完了,不得不面对《生活》,他甚至不会被省厅免费录用,只能去竞争激烈的服务行业,但他至少清醒了过来。

 
Кеша Рутов:

好吧,用C语言写,或者最好用Asembler,交易系统和机器学习,我们在100年后,在下辈子,当你写出你的第一个原型时再谈...


我并不反对C和ASM,问题是为了什么目的?防火软件、操作系统、控制器、新内核等等......没办法,但C语言的应用软件很难,没有C语言的线程,对于不同的操作系统,一切都不同,这不是一个写防火墙和病毒的论坛,对于TC和ME,世界标准是python,在紧要关头是java/sysharp。而马克西姆是一个著名的互联网冲浪者,只是到处冲浪寻找 "有趣的",就像一个学龄前儿童,在这里和那里,阅读摘要,挑选聪明的词来显得科学和寻找更多,这样的活动没有好结果,对于一个成年男子,你只能欺骗自己。如果他的收入来源用完了,不得不面对《生活》,他甚至不会被省厅免费录用,只能去竞争激烈的服务行业,但他至少清醒了过来。

那么从11级开始,你对C++有什么不满意的地方?我同意关于C的说法,但现代的优点看起来非常好。只是C/C++更接近于硬件,人们应该牢记这一点,而不是仅仅以这种风格来写:"嘿,硬件,给我这个,给我那个"。最后,所有这些功能或以某种形式存在于STL中,或可以毫无问题地实现,但在所有这些框架中直接使用内存工作是不肯定的。