zoukankan      html  css  js  c++  java
  • 字符串数组指针

    (1)
        char *a = "abc";
        char *b;
        
        b = a;
        
        printf("%s
    ", b);

    打印:abc

    a b 都是字符串指针,拷贝的是字符串地址,而不是字符串本身

    (2)

        char a[4] = "abc";
        char *b;
        
        b = a;
        
        printf("%s
    ", b);

    打印:abc

    数组名代表数组的首地址,即第一个元素的首地址

    (3)

        char a[3] = "abc";
        char *b;
        
        b = a;
        
        printf("%s
    ", b);

    打印:abc)F��P�

    数组a没有结尾符,所以赋值给b的时候会打印出来乱码

    (4)

        char *a = "abc";
        char b[5];
        
        b = a;
        
        printf("%s
    ", b);

    打印出错:incompatible types when assigning to type ‘char[5]’ from type ‘char *’

    数组名代表第一个元素的地址,可以看成常量,不能被重新赋值

    (5)

        char *a = "abc";
        //char b[5];
        
        //b = a;
        *a = 'b';
        
        printf("%s
    ", a);

    打印出错: “abc”被定义为一个字符串常量,值是不能被改变的,但是可以访问它

    (6)

        char *a = "abc";
        
        printf("%c
    ", *(a+4));

    打印: %     因为这个字符串常量,只被赋值到第三个字节,所以去引用第四个字节是不确定的

  • 相关阅读:
    Kth Ancestor 第k个祖先问题
    centOS 6.4挂载centOS分区
    上阶段学习总结
    code testing
    Helo~
    leetcode--Maximum Subarray
    leetcode--Climbing Stairs
    leetcode--Search Insert Position
    leetcode--Best Time to Buy and Sell Stock III
    leetcode--Best Time to Buy and Sell Stock II
  • 原文地址:https://www.cnblogs.com/Deanboy/p/7508844.html
Copyright © 2011-2022 走看看