Articles of puntatori

Tipo di riferimento in C #

Considera questo codice: public class Program { private static void Main(string[] args) { var person1 = new Person { Name = “Test” }; Console.WriteLine(person1.Name); Person person2 = person1; person2.Name = “Shahrooz”; Console.WriteLine(person1.Name); //Output: Shahrooz person2 = null; Console.WriteLine(person1.Name); //Output: Shahrooz } } public class Person { public string Name { get; set; } } Ovviamente, […]

Differenza tra char * e const char *?

Qual è la differenza tra char* name che punta a una costante stringa letterale, e const char* name

Quanti livelli di puntatori possiamo avere?

Quanti puntatori ( * ) sono consentiti in una singola variabile? Consideriamo il seguente esempio. int a = 10; int *p = &a; Allo stesso modo possiamo avere int **q = &p; int ***r = &q; e così via. Per esempio, int ****************zz;

C: Quale personaggio dovrebbe essere usato per ptrdiff_t in printf?

Quale personaggio dovrebbe essere usato per ptrdiff_t in printf ? Lo standard C spiega chiaramente come stampare ptrdiff_t in printf ? Non ho trovato nessuno. int a = 1; int b = 2; int* pa = &a; int* pb = &b; ptrdiff_t diff = b – a; printf(“diff = %?”, diff); // % what?

Il compilatore è autorizzato a riciclare variabili di puntatore liberate?

È stato affermato che un compilatore è libero di riutilizzare la variabile puntatore per qualche altro scopo dopo il realloc essere liberato , quindi non si ha alcuna garanzia che abbia lo stesso valore di prima vale a dire void *p = malloc(42); uintptr_t address = (uintptr_t)p; free(p); // […] stuff unrelated to p or […]

Qual è la differenza tra un VLA e l’allocazione dynamic della memoria tramite malloc?

Ero curioso di questo: Qual è la differenza tra: const int MAX_BUF = 1000; char* Buffer = malloc(MAX_BUF); e: char Buffer[MAX_BUF];

Sta memorizzando un puntatore non valido automaticamente un comportamento indefinito?

Ovviamente, il dereferenziamento di un puntatore non valido causa un comportamento non definito. Ma per quanto riguarda la semplice memorizzazione di un indirizzo di memoria non valido in una variabile puntatore? Considera il seguente codice: const char* str = “abcdef”; const char* begin = str; if (begin – 1 < str) { /* … do […]

Cosa è “->” nell’objective C?

Ho visto questo operatore comparire alcune volte nel codice di esempio in “Impara l’Obiettivo C su Mac”. Credo che sia un operatore nel linguaggio C che l’Objective C eredita. Ho provato su Google e cercando Stack Overflow e stranamente non è venuto fuori nulla. Ha un nome inglese?

Differenza tra char * var; e char * var ;?

Mi chiedo solo se c’è qualche differenza tra: char* var; char *var; o è solo una questione di preferenza (spaziatura)?

Pointer Arithmetic: ++ * ptr o * ptr ++?

Sto imparando il linguaggio C e abbastanza confuso le differenze tra ++*ptr e *ptr++ . Per esempio: int x = 19; int *ptr = &x; So che ++*ptr e *ptr++ producono risultati diversi ma non sono sicuro perché è così?