/* 指针类型分析 */
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <assert.h>
void test()
{
const char* p1 = "world";
const char p2[] = "world";
printf("const char* p1: %ld\n", sizeof(p1)); // 打印 8
printf("char p2[]: %ld\n", sizeof(p2)); // 打印6
printf("char p2[]: %ld\n", sizeof("world")); // 打印6
/*
思考分析:
从现象观察,sizeof计算的是数据类型大小,使用sizeof一定要注意形参的数据类型
我的错误认知: 我以前认为p1,p2数据类型都是char*,从测试来看char*和char []的确不一样
另外字符串字面量"world"的真实类型应该是字符串数组
*/
}
int main()
{
test();
return 0;
}