Sample code to show the usage of const

1305 ワード

C++ syntax is complex and counter-intuitive. Here is the code to help me understand const.
 
#include <stdio.h>

/*
 * const data
 */
void constData(const char *arg) 
{
    // can't be compiled
    // *arg = 'A';

    arg = "A";
}

void constPointer(char * const  p)
{
    // can't be compiled
    // p = "A";

    *p = 'A';
}

/*
 * argv is a pointer array. The pointers in the array are const.
 */
void constPointerArray(char *const argv[]) 
{
    // can't be compiled
    // *argv = "A";
    
    *(*argv) = 'x';
    argv = NULL;
}

int main(int argc, const char *argv[]) 
{
    char str1[] = "abc";
    char str2[] = "123";
    char *pp[2];
    *pp = str1;
    *(pp+1) = str2;

    constData(str1);
    printf("%s
", str1); constPointer(str1); printf("%s
", str1); constPointerArray(pp); printf("%s
", *pp); printf("%s
", *(pp+1)); return 0; }