zoukankan      html  css  js  c++  java
  • 数组名和指针

    #include <stdio.h>
    int main()
    {
    char str[10]="123456789";
    char *pStr = str;
    printf("%d ", sizeof(str));
    printf("%d ", sizeof(sizeof(pStr)));
    printf("%s ", str);
    printf("%s ", pStr);
    return 0;
    }

    运行如上程序,结果显示

    10

    4

    123456789

    123456789

    ps:printf("%s",)  逗号后面直接填想要输出的字符串的位置的指针,例如printf("%s",str+1);或者printf("%s",pStr+1);就会输出23456789

    sizeof是一种操作符,不是函数,因为sizeof(int);这条语句合法,但是函数中不可能将数据类型作为形参.

    说明1.数组名指代是一种数据结构--数组,因为10和4的区别

    但是如上面程序2.数组名又可以常量指针赋给其他变量指针,因为pStr一样可以输出字符串;

    #include <stdio.h>
    void arrayTest(char str[])
    {
    printf("%d ",sizeof(str) );
    printf("%s ",++str);
    }
    int main()
    {
    char str1[10] = "ILoveU";
    arrayTest(str1);
    return 0;
    }

    运行上面程序结果为

    4

    LoveU

    说明3.(1) 数组名作为函数形参时,在函数体内,其失去了本身的数据内涵,仅仅只是一个指针; 

      (2) 在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。

     

    
    
     
  • 相关阅读:
    12-29 批量删除
    12-29 注册审核
    12-25造数据库面向对象
    12-23 会话保持
    2016-12-19 php修改数据库数据
    12-18数据访问
    12-16php测试题
    1027 制作表格
    1027 超链接
    1027 HTML
  • 原文地址:https://www.cnblogs.com/ma77045728/p/6919946.html
Copyright © 2011-2022 走看看