Passando attraverso il linguaggio di programmazione C K & R in Visual Studio [chiuso]

2

Da quello che ho letto, K & R sembra essere un buon punto di partenza per imparare a programmare in generale, e programmare in modo specifico. Tuttavia, ho appena iniziato il primo capitolo e ho alcune domande. Possono essere estremamente semplici, e mi scuso se questo è il caso (io sono nuovo, dopotutto) - ma il tuo aiutarmi a rispondere sarebbe molto apprezzato.

1) Capisco che il libro sia stato scritto per descrivere le lingue C in generale. Questo significa che gli esempi che danno sono solo dei contorni approssimativi, e che per me provarli io stesso devo "tradurre" la struttura generale data in C ++ o C # o qualsiasi altra cosa?

Ad esempio, il libro di testo fornisce questo programma:

#include <stdio.h>
 main()
 {
 printf("hello, world\n");
 }

Ma ho trovato un programma per stampare "Hello, world" in C #, ad esempio:

// A Hello World! program in C#. 
using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Hello World!");

            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

E il programma in C ++ sembra diverso da entrambi i precedenti ...

Quindi la mia domanda è: il libro si aspetta che io sia in grado di tradurre il primo programma (o outline, qualunque esso sia) in un programma C # o C ++ - sto usando Visual Studio - per essere in grado di esercitarmi ?

2) Se il libro si aspetta che io lo faccia, hai qualche suggerimento su come posso tradurre il codice C generale in C # o C ++.

3) Potrebbe essere un'opinione, ma su quale base dovrei basarmi (e fare pratica con il codice) - C # o C ++?

    
posta Steve 01.07.2014 - 00:26
fonte

4 risposte

37

I understand the book is written to describe C languages in general.

Il libro è stato scritto per insegnarti ANSI C , non "C lingue in generale"

Does the book expect me to be able to translate the first program ... to a C# or C++ program?

No, quelle sono lingue diverse e il libro non si aspetta che tu faccia qualcosa con quelle lingue. Gli esempi sono ANSI C esempi.

Do you all have any tips on how I can go about ...

Which should I base my learning on (and practice coding in) -- C# or C++?

Queste domande, anche se perfettamente corrette, sono fuori tema per questo sito.

Basti dire che se vuoi imparare C # o C ++, dovresti cercare risorse per quelle lingue specifiche.

    
risposta data 01.07.2014 - 01:03
fonte
5

Innanzitutto, concordo sul fatto che K & R sia un ottimo punto di partenza per la famiglia C. È un libro davvero meravigliosamente scritto. È importante sottolineare che è abbastanza conciso.

Tieni presente che C ++ è molto più strettamente correlato a C che C #, sebbene C # prenda molto a prestito da entrambi. Java infatti fa lo stesso, e in effetti C # è seguito da Java.

Non puoi imparare C # o C ++ usando solo K & R - hai bisogno di risorse per ognuno di questi.

Sembra che tu stia proponendo di imparare tutti e tre i concetti di C, C ++ e C # contemporaneamente. Che questa sia una cosa buona dipende da te. Ti darà una grande opportunità per confrontare e confrontare le lingue senza aver creato un pregiudizio da qualsiasi cosa impari prima.

Tuttavia, ciò potrebbe rivelarsi molto impegnativo. Chiediti, se volessi imparare lo spagnolo, il portoghese e l'italiano, impareresti allo stesso tempo o separatamente?

    
risposta data 01.07.2014 - 06:08
fonte
0

Il libro K & R è un ottimo punto di partenza per qualsiasi variante C.

La risposta breve è che puoi eseguire il codice C attraverso un compilatore C ++ e verrà eseguito.

Alcune cose che devi sapere:

  • Quando è stato introdotto C ++, ha aggiornato le capacità di C (come minimo) aggiungendo la codifica orientata agli oggetti a C. ( UPDATE ) Come molti di voi hanno notato, le lingue non sono le stesse, continua per crescere ulteriormente nel tempo. ( / UPDATE ). Secondo l'articolo di wikipedia, Compatibilità di C e C ++ , ci sono differenze semantiche:

The C and C++ programming languages are closely related. C++ grew out of C, as it was designed to be source-and-link compatible with C.1 Due to this, development tools for the two languages (such as IDEs and compilers) are often integrated into a single product, with the programmer able to specify C or C++ as their source language. However, due to minor semantic differences, most non-trivial C programs will not compile as C++ code without modification — C++ is not a superset of C. Emphasis added.

Both C and C++ give you a lower level of abstraction that, with increased complexity, provides a breadth of access to underlying machine functionality that are not necessarily exposed with other languages. C++ adds the convenience (reduced development time) of a fully object oriented language which can, potentially, add an additional performance cost.

C# provides a managed memory model that adds a higher level of abstraction again. This level of abstraction adds convenience and improves development times, but complicates access to lower level APIs and makes specialized performance requirements problematic.

    
risposta data 01.07.2014 - 00:56
fonte
-2

Da un punto di vista c # K & R potrebbe essere un grande libro su c ... ho letto di recente nel tentativo di rispolverare su c. Devo dire che il codice in esso mi fa sanguinare gli occhi (quando ho un cappello c #).

In c # lo stile attuale è quello di rendere tutto chiaro e non ram 4+ dichiarazioni in uno.

Se vuoi imparare c # non è questo il punto da cui iniziare. Non posso raccomandare un libro comunque. Ma c, c ++ e c # sono lingue completamente separate.

c è sorprendente nella sua semplicità ed eleganza. È un po 'di età della pietra nei suoi processi, ma tornare alla sua semplicità è stato qualcosa che ho trovato gratificante. E molto stimolante perché su questo sono costruiti interi sistemi operativi senza tutto ciò che è essenziale per c #

c # è di livello enterprise ed è molto bravo.

c ++ si è evoluto così tanto nel corso degli anni, impararlo dal punto di vista c è una cattiva idea in quanto è stata appresa e ricostruita nel tempo. vuoi iniziare da un approccio molto moderno per evitare l'orribile bit imo.

    
risposta data 01.07.2014 - 11:26
fonte

Leggi altre domande sui tag