Hvad er forskellen mellem # define N 100 og int n = 100?

F

fatma1000

Guest
Hvad er forskellen mellem # define N 100 dobbelt H [N], og int N = 100; dobbelte H [N];
 
hi secound kode ikke fungerer cuz når u declear en statisk række compiler bør kender dimension af det, og i denne tilstand værdien af N er ukendt i kompilere tid, indtil køre tid. men i første kode u brug fra præprocessoren expresion # define, der er den samme som u skriver int H [100], hvis u ønsker at oprette et array med dynamisk dimension brug fra nye og slet operationer. int * H = NULL; int N = 100, H = (int *) new int [N];. . . brug fra H som en matrix og når u ikke behøver det mere. u skulle ledig hukommelse af det: Slet [] H, H = NULL;
 
Hej, int N = 100; dobbelte H [N], og dette vil ikke arbejde, men const int N = 100; dobbelte H [N], og dette vil arbejde, og forskellen mellem 1) # define N 100 dobbelt H [N]; og 2) const int N = 100; dobbelte H [N], og i tilfælde 1, skal du blot compileren erstatte N med antallet defineret og kompilerer koden, sker dette i løbet af precompilation fase af compiler i tilfælde 2, compileren kompilerer koden som den er og jeg vil anbefale dette, fordi koden er mere typen sikker på denne måde.
 

Welcome to EDABoard.com

Sponsor

Back
Top