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

Περίεργη συμπεριφορά της C++


Γηρυόνης

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

Δημοσ.

#include <iostream.h><P>void main()<BR>{<BR> int football[5]={2,2,3,4,5};<BR> for (int i=0;i<5;i++)<BR> {<BR> int y=i[football];<BR> cout<<y;<BR> }<BR>}<P> To παραπάνω κάνει compile και τρέχει κανονικότα κάτω από το Visual C++. Στη Java αυτό είναι compile-time error: "Cannot convert int[] to int". Φαίνεται ότι οι compilers της C++ έχουνε κληρονομήσει κάτι από τη λειτουργικότητα της C. Υπάρχει μία αυτονόητη μετατροπή του πίνακα σε pointer τύπο, οπότε η μεταβλητή "football" από πίνακας γίνεται ακέραιος.<P> Ένας φίλος μου μου έιπε ότι αυτό μπορεί να βασιστεί πάνω στην μαθηματικό τύπο a = *(a + B) = *(b + a) = b[a]. Περίεργο πάντως...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...