C dili hakkında sorular - sayfa 2

 

Teşekkür ederim, bu dili zaten seviyorum

taşınmak biraz zaman alır, sadece konuyla ilgili faydalı ipuçları

Önemli mi bilmiyorum ama bende c var ve c++ yok
 
#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 ;
}

Ve bu aynı, ancak yalnızca C stilinde.

 

Bu arada, örneklerin hepsi buradan olacak https://minepy.readthedocs.io/en/latest/libmine.html

ısınmak için taşıyor

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 :

İşlevin içine bellek ayırdım ve bağlantıyı geçtiğim değişken kapsamında serbest bıraktım.

Yazınızı görmedim galiba benimle aynı anda yazmışsınız aynısını açıklamaya çalıştım

20 yıl önce, C++ öğrenirken kendim için işaretçilerle şu şekilde çalıştığımı hatırladım:

- bir işaretçi bildirdi - işaretçinin değeri, bellek konumunun adresidir

- işaretçi, işaretçiye eşit adreste bellek hücresinde depolanan değeri aldı

- bir işaretçinin referansını kaldırırken, işaretçi türü basitse ( int, double ...) tam olarak işaretçi türünü tanımlayan bayt sayısı kaldırılır (yazılır) - o zaman sırasıyla 4 veya 8 bayt ile çalışırız - karmaşık bir türümüz varsa - her şey basittir - yapı, o zaman benzer bir işlem yapılır - bellek hücreleriyle çalışır, ancak derleyici türlerin uygunluğunu kontrol eder ve ayrıca verileri yapının tüm üyelerine "ayırır"


"parmaklarda" dedikleri gibi)))


Not: nesnelere ve işlevlere yönelik işaretçiler benzer şekilde çalışır, ancak işlev çağrıları (yöntemler) ek olarak oluşturulur, yani. verilerle çalışmak yerine, işaretçi başvurudan çıkarıldığında derleyici işlevi çağırır.

 
Igor Makanu :

Yazınızı görmedim galiba benimle aynı anda yazmışsınız aynısını açıklamaya çalıştım

20 yıl önce, C++ öğrenirken kendim için işaretçilerle şu şekilde çalıştığımı hatırladım:

- bir işaretçi bildirdi - işaretçinin değeri, bellek konumunun adresidir

- işaretçi, işaretçiye eşit adreste bellek hücresinde depolanan değeri aldı

- bir işaretçinin referansını kaldırırken, işaretçi türü basitse ( int, double ...) tam olarak işaretçi türünü tanımlayan bayt sayısı kaldırılır (yazılır) - o zaman sırasıyla 4 veya 8 bayt ile çalışırız - karmaşık bir türümüz varsa - her şey basittir - yapı, o zaman benzer bir işlem yapılır - bellek hücreleriyle çalışır, ancak derleyici türlerin uygunluğunu kontrol eder ve ayrıca verileri yapının tüm üyelerine "ayırır"


"parmaklarda" dedikleri gibi)))


Not: nesnelere ve işlevlere yönelik işaretçiler benzer şekilde çalışır, ancak işlev çağrıları (yöntemler) ek olarak oluşturulur, yani. verilerle çalışmak yerine, işaretçi başvurudan çıkarıldığında derleyici işlevi çağırır.

Hayır. İşlev, işlev içinde tahsis edilecek belleğe bir işaretçi döndürür. Ve işaretçinin referansı kaldırıldığında, ek bir işlev çağrısı olmayacaktır, çünkü işaretçi, bellekteki varlığın ilk baytının adresinin değeridir.

Bellek serbest bırakıldığında, bellek yöneticisi belleği referansa göre boş + tür boyutu olarak işaretler ve hepsi bu kadar.

 
Vladimir Simakov :

Hayır. İşlev, işlev içinde tahsis edilecek belleğe bir işaretçi döndürür. Ve işaretçinin referansı kaldırıldığında, ek bir işlev çağrısı olmayacaktır, çünkü işaretçi, bellekteki varlığın ilk baytının adresinin değeridir.

Bellek serbest bırakıldığında, bellek yöneticisi belleği referansa göre boş + tür boyutu olarak işaretler ve hepsi bu kadar.

İşaretçilerin nasıl çalıştığının genel ilkelerini yazdım,

tamam, burada durmamız gerekiyor, aksi takdirde konu başlatıcıyı kimin, neyin yazdığı ve düşündüğü tartışmasının çılgınlarına yönlendireceğiz.

Not: Her zaman nasıl anlatacağımı bilmediğimi söylerim, buradaki örneklerde yazdıklarım https://metanit.com/sharp/tutorial/8.3.php , Sharp'ta C sözdizimi de işe yarıyor

Указатели | 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);
}

Daha kolay değil mi?:

#python

list.sort()

https://www.youtube.com/watch?v=vHeeXI84GIA mutlaka izleyin

Makaleden makaleye dilden dile koşturmayı bırakın, kendinizi toparlayın.

 
Кеша Рутов :

Daha kolay değil mi?:

#python

list.sort()

https://www.youtube.com/watch?v=vHeeXI84GIA mutlaka izleyin

Makaleden makaleye dilden dile koşturmayı bırakın, kendinizi toparlayın.

Sizce piton nereden geldi?

Baktığınızdan emin olun ... ve bağlantıları daha fazla araştırdı, bulundu - "OKUL 10 GÜNDEN FAZLA VİDEO DERSLERİ" .. kişneme ... devam etti))

 
Dmitry Fedoseev :

Sizce piton nereden geldi?

Baktığınızdan emin olun ... ve bağlantıları daha fazla araştırdı, bulundu - "OKUL 10 GÜNDEN FAZLA VİDEO DERSLERİ" .. kişneme ... devam etti))

Pekala, C ile yazın ama Assembler'da, ticaret sistemlerinde ve makine öğreniminde hemen daha iyisi, 100 yıl sonra, sonraki yaşamda, ilk prototipi yazdığınızda konuşacağız...


Tehdit C ve ASM'ye karşı değilim, başka ne amaçla sorulur? Yakacak odun, işletim sistemi, kontrolörler, yeni YaP vb. burada seçenek yok, ancak C'de uygulama yazılımı zor, C'de gerçekten hiç iş parçacığı yok, farklı işletim sistemleri için her şey farklı, burası yakacak odun ve virüs yazarları için bir forum değil, TS ve MO için dünya standardı python , aşırı durumlarda, java\seasharp. Ve Maxim tanınmış bir İnternet sörfçüsüdür, sadece bir okul öncesi çocuk gibi "ilginç" arayışına tırmanır, burada ve orada ek açıklamalar okur, bilimsel görünmek için akıllı kelimeler alır ve daha ileriye bakar, böyle bir aktivite iyi bir şeyle bitmez , yetişkin bir erkek için, sadece kendinizi kandırabilirsiniz. Yakında gelir kaynakları tükenecek ve HAYAT ile karşı karşıya kalacaktı ve bir taşra teşkilatı için bile "stajere" bile bedavaya götürülmeyecekti, hizmet sektörüne girmek zorunda kalacaktı. şiddetli rekabet, ama en azından ayıldı

 
Кеша Рутов :

Pekala, C ile yazın ama Assembler'da, ticaret sistemlerinde ve makine öğreniminde hemen daha iyisi, 100 yıl sonra, sonraki yaşamda, ilk prototipi yazdığınızda konuşacağız...


Tehdit C ve ASM'ye karşı değilim, başka ne amaçla sorulur? Yakacak odun, işletim sistemi, kontrolörler, yeni YaP vb. burada seçenek yok, ancak C'de uygulama yazılımı zor, C'de gerçekten hiç iş parçacığı yok, farklı işletim sistemleri için her şey farklı, burası yakacak odun ve virüs yazarları için bir forum değil, TS ve MO için dünya standardı python , aşırı durumlarda, java\seasharp. Ve Maxim tanınmış bir İnternet sörfçüsüdür, sadece bir okul öncesi çocuk gibi "ilginç" arayışına tırmanır, burada ve orada ek açıklamalar okur, bilimsel görünmek için akıllı kelimeler alır ve daha ileriye bakar, böyle bir aktivite iyi bir şeyle bitmez , yetişkin bir erkek için sadece kendini kandırabilirsin. Yakında gelir kaynakları tükenecek ve HAYAT ile karşı karşıya kalacaktı ve bir taşra teşkilatı için bile "stajere" bile bedavaya götürülmeyecekti, hizmet sektörüne girmek zorunda kalacaktı. şiddetli rekabet, ama en azından ayıldı

Ve C++, 11. standarttan bu yana sizi memnun etmedi mi? C konusunda katılıyorum ama modern artılar çok normal görünüyor. Sadece C/C++ donanıma daha yakındır ve bunu hatırlamanız ve sadece şu tarzda yazmamanız gerekir: "Hey, demir parçası, sende bu var, bunu bana geri ver." Sonuç olarak, tüm bu işlevsellik STL'de zaten şu veya bu şekildedir veya sorunsuz bir şekilde uygulanır, ancak tüm bu çerçevelerde bellekle doğrudan çalışma mümkün değildir.