昨天面试的时候发现自己对类型位数好像又忘得七七八八的,记录一下面试题,复习一下一些忽略的知识点。
char占一个字节, int占4个字节(32、16位), char *看系统32位 4个字节 64位 8个字节。
float 4个字节,double 8个字节
malloc占多少位
char *p=malloc(100);
malloc申请了一百个字节的空间,并将首地址付给了p。这里的sizeof(p)得出的实际上是char *的长度。
sizeof(p) = 8;
#include <stdio.h>
char abc(char a[500])
{
printf("A %d\n", sizeof(a));
}
int main()
{
char a[] = "h";
char *p = a;
char b[] = "";
strcpy(b,a);
abc(p);
printf("%d %d %d %s %d\n", sizeof(a), sizeof(p), sizeof(b), b, sizeof(int));
}