#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;
}