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

Προβλημα με C. Δεν ξέρω τι μου γίνεται...


ClouD

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

Δημοσ.

Λοιπόν γράφω αυτά σε turbo c:

 

#include <stdio.h>

#include <conio.h>

int count;

main() {

clrscr();

for(count=0; count<=10; count++)

printf("%d", &count);

return 0;

}

 

Αυτό δεν έπρεπε να εμφανίζει από το 0 εώς και το δέκα ? Εμένα μου βγάζει 121212121212121212 και σταματά εκεί.

 

Γιατί? Τι κάνω λάθος?

 

Ευχαριστώ...

Δημοσ.

μπορεί κάποιος να ερμηνεύσει γιατί βγάζει 12 ?

 

είναι άραγε το offset απο το code segment ?

 

ποιο είναι το default data type που επιστρέφει η main

Αφού δεν έχει δηλωθεί απο το χρήστη ?

Δημοσ.

Ναι αυτό ήταν, είχα κολήσει από την scanf το ampersand και το έβαζα παντού :) Ευχαριστώ πολύ παιδιά.

Δημοσ.
μπορεί κάποιος να ερμηνεύσει γιατί βγάζει 12 ?

 

είναι άραγε το offset απο το code segment ?

 

ποιο είναι το default data type που επιστρέφει η main

Αφού δεν έχει δηλωθεί απο το χρήστη ?

 

Υποθέτω πως όσο εκτελείται ο παραπάνω κώδικας χωρίς να έχει κάνει restart το μηχάνημα βγάζει εντελώς τυχαία τον τελευταίο αριθμό που έχει μείνει στην μνήμη στην διεύθυνση που του ορίζει o IP register.Λόγω του λουπαρίσματος το επαναλαμβάνει αλλά επειδή δεν μεσολαβεί κάποια άλλη ενέργεια που θα τοποθετήσει άλλους αριθμούς στο συγκεκριμένο κομμάτι της μνήμης παραμένει η ίδια πληροφορία.

Φαντάζομαι πως ο ίδιος κώδικας μετά την επανεκκίνηση θα δείξει άλλον αριθμό.

 

Το default data type προφανώς έχει άμεση σχέση με το τι φίλτρο δίνεις στην εντολή εξόδου.Στην συγκεκριμένη περίπτωση δεσμεύουμε την εντολή με το %d που σημαίνει πως και στην περίπτωση που διαβάσει πραγματικό αριθμό θα επιστρέψει το ακέραιο μέρος του.

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

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

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