zoukankan      html  css  js  c++  java
  • initial pointer [expert c]

       initial differece between pointer and array

               Both arrays and pointers can be initialized with a literal string in their definition. Although these cases look the same, different things are happening. A pointer definition does not allocate space for what's pointed at, only for the pointer, except when assigned a literal string. For example, the definition below also creates the string literal:

                                         char *p = "breadfruit";
    Note that this only works for a string literal. You can't expect to allocate space for, for example, a float literal:
                                       float *pip = 3.141;     /* Bzzt! won't compile */

             A string literal created by a pointer initialization is defined as read-only in ANSI C; the program will  exhibit undefined behavior if it tries to change the literal by writing through p. Some implementations put string literals in the text segment, where they will be protected with read-only permission.

                    eg:          char *s = "hello world";

                                      *s = 'w';

        would generate an error when running the program.

        An array can also be initialized with a string literal:
                              char a[] = "gooseberry";
         In contrast to a pointer, an array initialized by a literal string is writable. The individual characters can later be changed. The following statement:

                     strncpy(a, "black", 5);
    gives the string in the array the new value "blackberry".

  • 相关阅读:
    HDU5418.Victor and World(状压DP)
    POJ2686 Traveling by Stagecoach(状压DP)
    POJ3254Corn Fields(状压DP)
    HDU5407.CRB and Candies(数论)
    CodeForces 352D. Jeff and Furik
    CodeForces 352C. Jeff and Rounding(贪心)
    LightOj 1282 Leading and Trailing
    Ural 1057. Amount of Degrees(数位DP)
    HDU 2089 不要62 (数位DP)
    HDU5366 The mook jong (DP)
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3283278.html
Copyright © 2011-2022 走看看