27-数组的本质

来源:互联网 发布:ubuntu视频下载软件 编辑:程序博客网 时间:2024/06/07 05:25

1、数组的概念

这里写图片描述

2、数组的大小

这里写图片描述

#include <stdio.h>int main(){    int a[5] = {1, 2};    int b[] = {1, 2};    printf("a[2] = %d\n", a[2]);    printf("a[3] = %d\n", a[3]);    printf("a[4] = %d\n", a[4]);    printf("sizeof(a) = %d\n", sizeof(a));    printf("sizeof(b) = %d\n", sizeof(b));    printf("count for a: %d\n", sizeof(a)/sizeof(int));    printf("count for b: %d\n", sizeof(b)/sizeof(int));    return 0;}a[2] = 0a[3] = 0a[4] = 0sizeof(a) = 20sizeof(b) = 8count for a: 5count for b: 2

3、数组地址与数组名

这里写图片描述

#include <stdio.h>int main(){    int a[5] = { 0 };    printf("a = %p\n", a);    printf("&a = %p\n", &a);    printf("&a[0] = %p\n", &a[0]);    return 0;}a = 0x7ffc7db041c0&a = 0x7ffc7db041c0&a[0] = 0x7ffc7db041c0

4、数组的盲点

这里写图片描述

#include <stdio.h>int main(){    int a[5] = {0};    int b[2];    int* p = NULL;    p = a;    printf("a = %p\n", a);    printf("p = %p\n", p);    printf("&p = %p\n", &p);    printf("sizeof(a) = %d\n", sizeof(a));    printf("sizeof(p) = %d\n", sizeof(p));    printf("\n");    p = b;    printf("b = %p\n", b);    printf("p = %p\n", p);    printf("&p = %p\n", &p);    printf("sizeof(b) = %d\n", sizeof(b));    printf("sizeof(p) = %d\n", sizeof(p));    //b = a;数组名是常量不可被赋值    return 0;}a = 0x7ffcc046cf30p = 0x7ffcc046cf30&p = 0x7ffcc046cf18sizeof(a) = 20sizeof(p) = 8b = 0x7ffcc046cf20p = 0x7ffcc046cf20&p = 0x7ffcc046cf18sizeof(b) = 8sizeof(p) = 8

5、小结

这里写图片描述

6、

原创粉丝点击