C-Programm zur Demonstration der Verwendung von Zeigern

C-Programm zur Demonstration der Verwendung von Zeigern

Schreiben Sie ein C-Programm, um die Verwendung von Zeigern zu erstellen, zu initialisieren und zu demonstrieren. Zugriff auf Werte und Adressen mit einer Zeigervariablen in der C-Programmierung.

Erforderliche Kenntnisse

Grundlegende C-Programmierung, Zeiger

Basis von Zeigern

Als High-Level-Programmiersprache ist C bei der Low-Level-Programmierung extrem leistungsfähig.

Pointer ist eines seiner Tools, das eine solche Speicherverwaltung auf niedriger Ebene bietet. Daten im Speicher sind als Folge von Bytes organisiert. Wo auf jedes Byte über seine eindeutige Adresse zugegriffen wird. Diese Adressen reichen von Null (0) bis zu einer positiven Ganzzahl. Zeiger in der C-Programmierung bieten einen effizienten Weg, um die Low-Level-Speicheraktivitäten zu handhaben.

Wie andere Variablen können auch Zeiger Variablen vom Typ Zeiger deklarieren. Nun, was bedeutet das? Wie andere Variablen können wir eine Zeigervariable deklarieren. Aber welche Art von Daten enthält die Zeigervariable? Im Gegensatz zu anderen Variablen enthält der Zeiger die Speicheradresse einer anderen Variablen. Wir werden später sehen, wie diese Speicheradressen verwendet werden und wie Zeiger ein Zauberstab für die C-Programmierer sind. Machen wir uns nun mit einigen Zeigerkonzepten vertraut.

Lesen der Speicheradresse einer beliebigen Variablen

Wir wissen, dass jede deklarierte Variable einen Namen, einen Speicherort und einen Wert hat. Name ist der Bezeichnername, den wir bei der Deklaration der Variablen angeben. Werte sind die Konstanten, die die Variable enthält.
Zum Beispiel - int num =10; num ist der Variablenname und 10 ist der in dieser Variablen gespeicherte Wert. Aber was ist mit der Speicheradresse?

In der C-Programmierung wird der unäre Operator &(Adresse von) verwendet, um die Speicheradresse einer beliebigen Variablen zu erhalten. Adresse des Operators, wenn eine beliebige Variable vorangestellt ist, gibt die tatsächliche Speicheradresse dieser Variablen zurück. Sehen wir uns ein Programm an, um die tatsächliche Speicheradresse von Variablen zu erhalten.

Programm zum Abrufen der Speicheradresse anhand der Adresse des Operators

/**
 * C program to get memory address using address of operator
 */

#include <stdio.h>

int main()
{
    /* Simple declarations */
    char character = 'C';
    int integer = 1;
    float real = 10.4f;
    long long biginteger = 989898989ll;

    /* Print variable value with their memory address */
    printf("Value of character = %c, Address of character = %u\n", character, &character);
    printf("Value of integer = %d, Address of integer = %u\n", integer, &integer);
    printf("Value of real = %f, Address of real = %u\n", real, &real);
    printf("Value of biginteger = %lld, Address of biginteger = %u", biginteger, &biginteger);

    return 0;
}

Hinweis: Das obige Programm erzeugt auf verschiedenen Systemen unterschiedliche Ergebnisse. Sie können auch jeden anderen Formatbezeichner außer %u verwenden, um Speicheradressen zu drucken. Sie können jeden Formatbezeichner verwenden, der eine ganze Zahl ausgibt. Versuchen Sie es mit %x %d %i %ld usw.

Ausgabe

Value of character = C, Address of character = 6356751
Value of integer = 1, Address of integer = 6356744
Value of real = 10.400000, Address of real = 6356740
Value of biginteger = 989898989, Address of biginteger = 6356728

Zeigervariablen erstellen, initialisieren und verwenden

Zeiger können viele Low-Level-Speicheroperationen verarbeiten (einschließlich dynamischer Speicherzuordnung). Bevor wir uns jedoch mit Zeigern befassen, wollen wir zunächst lernen, eine Zeigervariable zu deklarieren. Wie andere Variablendeklarationen folgen Zeiger auch der gleichen Syntax -

Syntax zum Deklarieren einer Zeigervariable

<data-type> * <variable-name>

Beispiel einer Zeigerdeklaration

int * integer_pointer;
float * float_ptr
char * charPtr;
long * lptr;

Programm zum Erstellen, Initialisieren und Verwenden von Zeigervariablen

/**
 * C program to create, initialize and use pointers
 */

#include <stdio.h>

int main()
{
    int num = 10;
    int * ptr;

    /* Stores the address of num to pointer type */
    ptr = &num;

    printf("Address of num = %d\n", &num);
    printf("Value of num = %d\n", num);

    printf("Address of ptr = %d\n", &ptr);
    printf("Value of ptr = %d\n", ptr);
    printf("Value pointed by ptr = %d\n", *ptr);

    return 0;
}

Ausgabe

Address of num = 6356748.
Value of num = 10
Address of ptr = 6356744
Value of ptr = 6356748
Value pointed by ptr = 10

Viel Spaß beim Programmieren 😉

Empfohlener Beitrag

  • Übungen zur Programmierung von Arrays und Matrizen
  • Übungen zur String-Programmierung
  • Übungen zur Programmierung von Funktionen und Rekursionen