| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> Content
    Vantaggi e svantaggi del Puntatori
    A seconda di chi si chiede , i puntatori sono sia una benedizione o una maledizione . Puntatori forniscono un meccanismo per accedere direttamente e modificare oggetti e il codice in memoria. I puntatori sono utilizzati in molti linguaggi di programmazione per la manipolazione di stringhe di caratteri , passare i parametri alle funzioni , la gestione array di dati , e la creazione di liste collegate e altre strutture di dati complessi . Mentre puntatori forniscono una grande flessibilità per la gestione della memoria e ottimizzazione di algoritmi , ci sono svantaggi . Imparare a utilizzare i puntatori è difficile per molti programmatori , e il debug dei problemi del puntatore è impegnativo . Ottimizzazione

    puntatori forniscono un vantaggio di prestazioni, consentendo di accedere direttamente alla memoria del computer . In un programma per computer , il modo più veloce per accedere e modificare un oggetto è quello di accedere direttamente alla memoria fisica in cui l'oggetto viene memorizzato . Questa tecnica viene comunemente utilizzata per ottimizzare gli algoritmi che richiedono un accesso frequente o ripetitiva di grandi quantità di dati .
    Sicurezza

    Accesso diretto alla memoria significa che è possibile fare cose che forse si non dovrebbe. A seconda della lingua , il compilatore e la piattaforma del computer , si potrebbe involontariamente ( o intenzionalmente ), memoria ad accesso che non è tuo per accedere . Di conseguenza , si potrebbe sovrascrivere la memoria critica , modificare il codice di un'applicazione in esecuzione , o causare l'applicazione o un'altra applicazione di comportarsi o di uscire in modo imprevisto . Un errore comune è quello di eseguire oltre la fine di un array, l'accesso alla memoria oltre la fine dello spazio allocato per tale matrice .
    Gestione della memoria

    Gestire l'utilizzo della memoria in un'applicazione utilizzando puntatori offre flessibilità , ma è anche un lavoro di routine . Allocazione e deallocazione di memoria necessaria in fase di esecuzione consente di creare oggetti di grandi dimensioni , come ad esempio gli array , in modo rapido e subito liberare la memoria quando non è più necessaria . Tuttavia, è anche facile creare perdite di memoria riassegnando un puntatore senza liberare la memoria che stava puntando al primo . Garbage Collection è la vostra responsabilità .
    Parametri di funzione
    Funzioni

    può restituire un solo valore , ma possono prendere più parametri . Passando in puntatori a variabili come parametri , una funzione può essere utilizzata per impostare i valori di tali variabili , ed i nuovi valori persisterà dopo la funzione restituisce. Essendo in grado di impostare il valore di diverse variabili in una volta con una singola chiamata di funzione è pulito ed efficiente . Tuttavia, può essere un po 'di confusione a leggere , perché non si può dire se le variabili passati saranno modificati o non semplicemente guardando la chiamata di funzione . Avrete bisogno di guardare la documentazione di funzione per imparare la funzione si comporta
    Funzione Puntatori

    puntatori non sono solo per gli oggetti in memoria, . Possono essere utilizzati anche per funzioni , permettendo così una funzione da passare come parametro a un'altra funzione . Un puntatore funzione può essere assegnato l' indirizzo di una di una scelta di funzioni in modo che il puntatore agisce come una sorta di alias . Object -oriented linguaggi di programmazione hanno eliminato la necessità di puntatori a funzione con l'ereditarietà e il polimorfismo .
    Pointer Confusione

    puntatori sono un argomento di confusione per molti programmatori , in particolare quelli con esperienza nel utilizzando linguaggi che non dispongono di puntatori e di accesso diretto alla memoria . Tuttavia, la persistenza porta rapidamente alla padronanza di puntatori . I puntatori sono spesso accompagnati da sintassi oscura . Convenzioni di denominazione coerenti delle variabili può aiutare il vostro codice più leggibile . Ad esempio , le convenzioni di denominazione comuni includono l'utilizzo di " P_ " o " ptr_ " come prefisso per i nomi delle variabili del puntatore .
    Consigli

    Utilizzare sempre le funzioni di allocazione fornite dal linguaggio per la memoria di allocazione , e verificare che la memoria è stata allocata prima di utilizzarlo. Siate cauti con la gestione della memoria , e la memoria fino libero quando non è più necessaria . Se si riassegna un puntatore ad un nuovo indirizzo di memoria , assicurarsi che la vecchia memoria viene liberata o assegnato ad un puntatore diverso . Assicurarsi che i puntatori creati in funzione è stata assegnata la proprietà al campo genitore o che la memoria viene deallocato prima di uscire dalla funzione .

    Previous :

    next :
      Articoli Correlati
    ·Come scrivere un numero in base 16 
    ·Come salvare le modifiche a WPF in Dataset 
    ·Come visualizzare un elenco di punti in WPF 
    ·Come creare un pulsante di reset con HTML Programmazion…
    ·Come si crea un nodo figlio Sito web 
    ·Come collegare parametri in una JSP Crystal Report 
    ·Come connettersi al database Heliohost 
    ·Come utilizzare Involucro Camel 
    ·Come inserire caselle di testo con codice VBA in Excel 
    ·Come utilizzare Enterprise Library Blocco dati di acces…
      Articoli in evidenza
    ·Indicizzazione logica in MATLAB 
    ·Come ottenere più Popolari da visualizzare sul tuo sit…
    ·Come programmare una barra di scorrimento verticale in …
    ·Come convertire un argv per un Integer 
    ·Come fare un gioco Java con NetBeans 
    ·WPS e JVM Heap Taglie 
    ·Come si crea una casella di controllo in Terrapin Logo …
    ·Come verificare la vulnerabilità XSS 
    ·Come compilare ed esecuzione in Python 
    ·Algoritmi di base in Strutture di dati 
    Copyright © Conoscenza Informatica http://it.wingwit.com