• sizeof(数组)


    如何判断 int 普通数组a[]={0} ?

    #include<stdio.h>
     
    int main()
    {
        int a[] = {1,2,3,4};
        printf("%d\n",sizeof(a)); //16
        printf("%d\n",sizeof(a+0));//4
        printf("%d\n",sizeof(*a)); //4
        printf("%d\n",sizeof(a+1)); //4
        printf("%d\n",sizeof(a[1])); //4
        printf("%d\n",sizeof(&a)); //4
        printf("%d\n",sizeof(&a+1));//4
        printf("%d\n",sizeof(&a[0]));//4
        printf("%d\n",sizeof(&a[0]+1)); //4
        getchar();
        return 0;
    }

    char arr[]={'a',...,'f'};

    #include<stdio.h>
    #include<string.h>
     
    int main()
    {
        char arr[] = {'a','b','c','d','e','f'}; 
        printf("%d\n", sizeof(arr)); //6
        printf("%d\n", sizeof(arr+0));//4
        printf("%d\n", sizeof(*arr));//1
        printf("%d\n", sizeof(arr[1]));//1
        printf("%d\n", sizeof(&arr)); //4
        printf("%d\n", sizeof(&arr+1));//4
        printf("%d\n", sizeof(&arr[0]+1));//4 
     
        printf("%d\n", strlen(arr));//随机值
        printf("%d\n", strlen(arr+0));//随机值
        //printf("%d\n",strlen(*arr));
        //printf("%d\n", strlen(arr[1]));
        printf("%d\n", strlen(&arr));//随机值
        printf("%d\n", strlen(&arr+1));//随机值
        printf("%d\n", strlen(&arr[0]+1)); //随机值
        getchar();
        return 0;
    }

    char *p="123456"

    #include<stdio.h>
    #include<string.h>
     
    int main()
    {
        char *p = "abcdef";
        printf("%d\n", sizeof(p));//4
        printf("%d\n", sizeof(p+1));//4
        printf("%d\n", sizeof(*p)); //1
        printf("%d\n", sizeof(p[0])); //1
        printf("%d\n", sizeof(&p)); //4
        printf("%d\n", sizeof(&p+1)); //4
        printf("%d\n", sizeof(&p[0]+1)); //4
     
        printf("%d\n", strlen(p)); //6
        printf("%d\n", strlen(p+1));//5
        //printf("%d\n", strlen(*p));
        //printf("%d\n", strlen(p[0]));
        printf("%d\n", strlen(&p));//随机值
        printf("%d\n", strlen(&p+1));//随机值
        printf("%d\n", strlen(&p[0]+1));//5 
        getchar();
        return 0;
    }

    char p[]="abc123"

    #include<stdio.h>
    #include<string.h>
     
    int main()
    {
        char p[] = "abcdef";
        
        printf("%d\n", strlen(p)); //6
        printf("%d\n", strlen(p+1));//5
        //printf("%d\n", strlen(*p));
        //printf("%d\n", strlen(p[0]));
        printf("%d\n", strlen(&p));//6
        printf("%d\n", strlen(&p+1));//随机值
        printf("%d\n", strlen(&p[0]+1));//5 
        getchar();
        return 0;
    }

    二维数组 int  a[3][4]={0}

    #include<stdio.h>
    #include<string.h>
     
    int main()
    {
        int a[3][4] = {0}; 
     
        printf("%d\n",sizeof(a)); //48
        printf("%d\n",sizeof(a[0][0]));//4;
        printf("%d\n",sizeof(a[0]));//16;
        printf("%d\n",sizeof(a[0]+1));//4
        printf("%d\n",sizeof(a+1)); //4
        printf("%d\n",sizeof(&a[0]+1));//4
        printf("%d\n",sizeof(*a)); //16
        printf("%d\n",sizeof(a[3])); //16
        getchar();
        return 0;
    }

    数组只有两种情况下表示整个数组:

    • sizeof()中放的是数组名表示整个数组
    • 取地址&数组名代表整个数组

    其他都表示数组首地址或数组地址。

  • 相关阅读:
    Java 签名(SHA1WithRSA、SHA256WithRSA、SHA256withECDSA)
    记一次用WireShark抓包摆脱Si服后台限制的过程
    反向代理Nginx
    对于新能源Can数据、电池BMS等字节和比特位的解析
    WireShark抓包命令
    .NET下寄宿于控制台的HTTPS监听
    RSA等非对称加密为什么要用公钥加密,而用私钥解密?
    FTP、SFTP与FTPS
    Python打包方法——Pyinstaller
    [Python爬虫]煎蛋网OOXX妹子图爬虫(1)——解密图片地址
  • 原文地址:https://www.cnblogs.com/BBS2013/p/15816686.html
Copyright © 2020-2023  润新知