#include<stdio.h>
int main()
{
int arr[5][5];
int(*p)[4];
p = arr;
/// <summary>
/// E0513
/// 不能将 "int (*)[5]" 类型的值分配到 "int (*)[4]" 类型的实体
/// 109 D:\CODE\2021\109\源.cpp 6
/// 警告 C4477
/// “printf” : 格式字符串“ % p”需要类型“void* ”的参数,
/// 但可变参数 1 拥有了类型“int”
/// 109 D : \CODE\2021\109\源.cpp 11
/// </summary>
/// <returns></returns>
printf("%p,%d\n", &p[4][2] - &arr[4][2], &p[4][2] - &arr[4][2]);
return 0;
}
用.cpp编译报错,无法运行。
但是换成.c文件时只有警告没有编译