常被人误认为是函数的关键字--sizeof

sizeof是关键字,是一种特殊的运算符,而不是函数。

示例程序:


#include <stdio.h>
#include <malloc.h>

void getMemory1(char a[100]){
char *p = (char *)malloc(100);
printf("sizeof(a):%d,sizeof(p):%d\n",sizeof(a),sizeof(p));
}

int main(void){
int i = 0;
char a[100];
char *p;
int *p1 = NULL;
char *p2;
p2 = "123";//指向字符串常量的指针,字符串常量存放在静态储存区

getMemory1(a);

p = a;

printf("%d\n",sizeof(int));
printf("%d\n",sizeof(i));
//printf("%d\n",(sizeof int));
printf("%d\n",(sizeof i));

printf("sizeof(a):%d\n",sizeof(a));
printf("sizeof(a[100]):%d\n",sizeof(a[100]));
printf("sizeof(&a):%d\n",sizeof(&a));
printf("sizeof(&a[0]):%d\n",sizeof(&a[0]));

printf("sizeof(p):%d\n",sizeof(p));
printf("sizeof(*p):%d\n",sizeof(*p));

printf("sizeof(p1):%d\n",sizeof(p1));
printf("sizeof(*p1):%d\n",sizeof(*p1));

printf("sizeof(p2):%d\n",sizeof(p2));
printf("sizeof(*p2):%d\n",sizeof(*p2));
printf("sizeof(*p2+1):%d\n",sizeof(*p2+1));
printf("sizeof(*(p2+1)):%d\n",sizeof(*(p2+1)));

return 0;
}


运行结果如下(32位机器上运行):


sizeof(a):4,sizeof(p):4
4
4
4
sizeof(a):100
sizeof(a[100]):1
sizeof(&a):4
sizeof(&a[0]):4
sizeof(p):4
sizeof(*p):1
sizeof(p1):4
sizeof(*p1):4
sizeof(p2):4
sizeof(*p2):1
sizeof(*p2+1):4
sizeof(*(p2+1)):1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值