Qual è il significato dell'utilizzo del secondo parametro con una virgola nel codice seguente?Qual è il significato di new int [25,2]?
int *num = new int[25,2];
Qual è il significato dell'utilizzo del secondo parametro con una virgola nel codice seguente?Qual è il significato di new int [25,2]?
int *num = new int[25,2];
Questo è il comma operator in azione: si valuta che sia operando e restituisce l'ultimo, nel tuo caso 2. In modo che sia equivalente:
int *num = new int[2];
Probabilmente è giusto dire che il 25,2
parte non era ciò che era inteso, a meno che non fosse una domanda trabocchetto.
Modifica: grazie Didier Trosset.
Questo è l'operatore virgola in azione: si valuta che sia operando e restituisce l'ultima uno, nel tuo caso 2. In modo che sia equivalente:
int *num = new int[2];
Si prega di notare che il testo dei post su SO è pubblicato con una licenza che richiede l'attribuzione. Puoi copiare e incollare, ma dovresti citare le fonti. – avakar
Eugen Dinca ha pubblicato esattamente la stessa risposta 2 minuti prima di te. Non sono sicuro di ripubblicare la sua risposta solo per correggere una parola è più efficiente (e più elegante) che solo puntare l'errore in modo che possa correggere la sua risposta. – ereOn
Non pensavo di poter modificare le risposte degli altri. In realtà, per prima cosa ho indicato l'errore in un commento, puoi vederlo, e un paio di minuti dopo aver copiato, ha incollato la sua risposta per correggerla. Con le mie scuse per il comportamento non corretto. –
Si utilizza l'operatore virgola, che è fare in modo che il codice faccia qualcosa che potresti non aspettarti a prima vista.
L'operatore virgola valuta l'operando LHS quindi valuta e restituisce l'operando RHS. Quindi, nel caso di 25, 2
valuterà 25
(non fare nulla) quindi valutare e restituire 2
, in modo che riga di codice è equivalente a:
int *num = new int[2];
// Dichiarare una matrice unidimensionale
int [] array1 = new int [5];
// Declare and set array element values
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
// Alternative syntax
int[] array3 = { 1, 2, 3, 4, 5, 6 };
// Declare a two dimensional array
int[,] multiDimensionalArray1 = new int[2, 3];
// Declare and set array element values
int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
// Declare a array
int[][] Array = new int[6][];
// Set the values of the first array in the array structure
Array[0] = new int[4] { 1, 2, 3, 4 };
Compilare anche questo? –
Sì, è un codice perfettamente legale (sfortunatamente) –
Ma si noti che 'new (int [25, 2])' non è un codice legale. –