const belirtecini göstericlerle kullanmak

Kategori

const belirtecini göstericlerle kullanmak

const belirteci, programcının derleyiciye belirli bir değiĢkenin değerinin değiĢtirilmemesi gerektiğinin bildirmesini sağlar. Bir göstericiyi fonksiyona geçirmenin dört yolu vardır. Bunlar ; sabit olmayan bir göstericiyi sabit olmayan bir veriyle, sabit bir göstericiyi sabit olmayan bir veriyle, sabit olmayan bir göstericiyi sabit bir veriyle ve sabit bir göstericiyi sabit bir veriyle kullanmaktır.

Sabit olmayan veriyi gösteren sabit olmayan gösterici kullanma:

#include <stdio.h>
#include <ctype.h>

void harfCevir( char * ); 

int main()
{
    char string[ ] = "karakter dizisi ve 45,44"; 
    printf( "Çevrilmeden önce: %s", string ); 
    harfCevir( string ); 
    printf( "\nÇevrildikten sonra: %s\n", string );
    return 0;
}

void harfCevir ( char *sPtr ) {
    while ( *sPtr != '\0' ) { 
        if ( islower( *sPtr )) 
           *sPtr = toupper( *sPtr );
        ++sPtr;
    }
}
Çevrilmeden önce: karakter dizisi ve 45,44
Çevrildikten sonra: KARAKTER DIZISI VE 45,44

 Sabit bir veriyi gösteren sabit olmayan bir gösterici kullanma:
#include <stdio.h>

void yazdir ( const char * );

int main()
{
    char string [ ] = "karakterleri yazdir"; 
    printf( "String:\n" );
    yazdir( string );
    printf( "\n" ); 

    return 0;
}

void yazdir ( const char *sPtr ) {
    for ( ; *sPtr != '\0'; sPtr++ ) 
        printf( "%c", *sPtr );
}
String:
karakterleri yazdir


Sabit bir veriyi gösteren sabit bir göstericiyi  3   değiştirmeye çalışmak:

#include <stdio.h>
int main()
{
    int x, y; 
    int * const ptr = &x;
    *ptr = 7;
    ptr = &y;
    return 0;
}
main.c: In function ‘main’:
main.c:15:9: error: assignment of read-only variable ‘ptr’
     ptr = &y;
         ^

sabit bir veri için sabit olmayan gösterici  3   kullanarak değeri değiştirmeye çalışmak :

#include <stdio.h>

void f ( const int * );

int main()
{
    int y; 
    f( &y );
    return 0;
}

void f ( const int *xPtr ) {
    *xPtr = 100;
}
main.c: In function ‘f’:
main.c:21:11: error: assignment of read-only location ‘*xPtr’
     *xPtr = 100;
           ^

 Sabit bir veriyi gösteren sabit bir göstericiyi  3   değiştirmeye çalışmak:

#include <stdio.h>
int main()
{
    int x = 5, y;
    const int *const ptr = &x;
    printf( "%d\n", *ptr );
    *ptr = 7;
    ptr = &y;
    return 0;
}
main.c: In function ‘main’:
main.c:15:10: error: assignment of read-only location ‘*ptr’
     *ptr = 7;
          ^
main.c:16:9: error: assignment of read-only variable ‘ptr’
     ptr = &y;
         ^

 

Facebookta Paylaş Tweetle