《c专家编程》笔记--sizeof

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

int main(void){
        int *p;
        int *a;
        a = (int*)malloc(sizeof*p);
        *a=1;
        printf("%d\n",*a);
        free(a);
        return 0;
}

上面这段代码,编译运行都没有任何问题。

a = (int*)malloc(sizeof*p);
一般主要是对上面这行代码有疑问,查阅相关资料,sizeof的用法如下:

  1、用于数据类型

  sizeof使用形式:sizeof(type)

  数据类型必须用括号括住。如sizeof(int)。

  2、用于变量

  sizeof使用形式:sizeof(var_name)或sizeof var_name

   变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。


你可能感兴趣的:(《c专家编程》笔记--sizeof)