Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Μία δομή μπορεί να περιλαμβάνει μέλη που είναι τύπου άλλης δομής; σωστό ή λάθος

ό,τι λειτουργία γίνεται με πίνακες μπορεί να γίνει και με δείκτες; σωστό ή λάθος

Μιλώ όσον αφορά την γλώσσα προγραμματισμού c 

 

Επεξ/σία από vickygirl10
Δημοσ. (επεξεργασμένο)

Το πρώτο είναι σωστό.

Το δεύτερο είναι σωστό. Η σημειογραφία Α[ i ] μπορεί να αντικατασταθεί με αυτήν *(A+i).

Επεξ/σία από xristos97
  • Like 1
Δημοσ. (επεξεργασμένο)
Στις 6/9/2019 στις 11:26 ΠΜ, xristos97 είπε

Το πρώτο είναι σωστό.

Το δεύτερο είναι σωστό. Η σημειογραφία Α[ i ] μπορεί να αντικατασταθεί με αυτήν *(A+i).

Nitpicking, αλλά το A[ i ] σε χαμηλότερη επίπεδο είναι το *(A+i). Απλά πρόκειται για πιο κομψό τρόπο γραφής, καθώς οι πίνακες δεν είναι τίποτα παραπάνω απο ένα μπλοκ μνήμης με έναν δείκτη στο πρώτο στοιχείο (ή αλλιώς βάση του πίνακα). Εν τέλη, όλα στο χαμηλότερο επίπεδο περιστρέφονται γύρω απο τιμές σε θέσεις μνήμεις και δείκτες που δείχνουν σε αυτές τις θέσεις, είτε είναι structs, είτε arrays κ.α.  

Επεξ/σία από vaggelisdan
Δημοσ.

@vickygirl10

Όταν λες δομή εννοείς Struct;

αν ναι τότε βεβαίως γίνεται. Ψάξε για nested structures in c.

https://fresh2refresh.com/c-programming/c-nested-structure/ 

Στην άλλη ερώτηση η απάντηση είναι λάθος. Ότι γίνεται με τους πίνακες δεν γίνεται με τους δείκτες. Οι δείκτες χρησιμοποιούνται για χειρισμό δυναμικής μνήμης. Οι πίνακες είναι προσχεδιασμένου μεγέθους. Η χρήση δεικτών στους πίνακες μπορεί να γίνει, αλλά δεν έχει νόημα, εκτός από την αριθμητική των δεικτών, για να διαβάσουμε σε περισσότερες διαστάσεις. Όμως το να σχεδιάζεις κάτι με πίνακες και να λες ότι δουλεύεις με δείκτες, ενώ πίνακες χρησιμοποιείς απλά δεν κάνεις την δουλειά που κάνουν οι δείκτες και οι  δυναμικές δομές.

  • 2 εβδομάδες αργότερα...
Δημοσ.

Μια μικρή παρένθεση μόνο. Σε πολλές γλώσσες, οι δείκτες και οι στατικοί πίνακες μπορούν να χρησιμοποιηθούν με τον ίδιο τρόπο, αλλά αυτό δεν σημαίνει ότι είναι συνώνυμα.

Για παράδειγμα, ενώ στη C και στη C++ μπορείς να χρησιμοποιήσεις έναν δείκτη σαν στατικό πίνακα και έναν στατικό πίνακα σαν δείκτη(αρκεί να μη προσπαθήσεις να τον αλλάξεις), ο τρόπος που λειτουργούν "under the hood" είναι διαφορετικός, κι αν δεν το γνωρίζεις μπορείς πολύ εύκολα να κάνεις λάθη που που θα σε κάνουν να τραβάς τα μαλλιά σου... Πχ, η διεύθυνση ενός στατικού πίνακα είναι ο ίδιος ο πίνακας. Η διεύθυνση ενός δείκτη όμως δεν είναι ο πίνακας στον οποίον δείχνει, είναι η διεύθυνση της μεταβλητής που αποθηκεύει τον δείκτη...

Άλλο παράδειγμα (πάλι C/C++), ένας δισδιάστατος πίνακας μπορεί να υλοποιηθεί ως μονοδιάστατος (όλοι οι στατικοί πίνακες είναι), αλλά μπορεί να υλοποιηθεί και ως πίνακας δεικτών. Αυτές οι δύο υλοποιήσεις είναι ασύμβατες αν δεν προσέχεις...

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...