#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
//int main()
//{
//  int a = 10;
//  int* pa = &a;
//  //char* pc = &a; //有警告
//
//  char ch = 'w';
//  void* p = &a; 
//  //*p=2; p++;  //err
//  //void* 类型的指针可以接收任意类型的地址 
//  //void* 类型的指针不可以进行解引用操作,也不能进行+ -整数的操作
//  p = &ch;
//  return 0;
//}
    //数组名是首元素的地址
    //1.sizeof(数组名)--数组名表示整个数组
    //2.&数组名-- 数组名表示整个数组
    //地址的大小是不分贵贱的,地址的大小是:4/8
//整形数组:
//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));     //16
//  printf("%d\n", sizeof(&a+1));    //4
//  printf("%d\n", sizeof(&a[0]));   //4
//  printf("%d\n", sizeof(&a[0]+1)); //4
//  return 0;
//}
//字符数组(1):
//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("\n%d\n",strlen(arr));        //随机值
//  printf("%d\n", strlen(arr+0));       //随机值
//  //printf("%d\n", strlen(*arr));        //程序错误:传过去的是a--97
//  //printf("%d\n", strlen(arr[1]));      //程序错误:传过去的是b--98
//  printf("%d\n", strlen(&arr));        //随机值
//  printf("%d\n", strlen(&arr+1));      //随机值-6
//  printf("%d\n", strlen(&arr[0]+1));   //随机值-1
//  return 0;
//}
//字符数组(2):
int main()
{
    char arr[] = "abcdef";
    printf("%d\n", sizeof(arr));           //7
    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("\n%d\n", strlen(arr));       //6
    printf("%d\n", strlen(arr+0));       //6
    //printf("%d\n", strlen(*arr));        //程序错误:传过去的是a--97
    //printf("%d\n", strlen(arr[1]));      //程序错误:传过去的是b--98
    printf("%d\n", strlen(&arr));        //6
    printf("%d\n", strlen(&arr+1));      //随机值
    printf("%d\n", strlen(&arr[0]+1));   //5
    return 0;
}