直接上代码了
1. 关于sizeof( )的指针问题
#include <stdio.h>
void fun(int *a, int len);
int main(void)
{
int a[6] = {3,2,5,8,4,7};
fun(a, 6);
fun(a+2, 4);
printf("%d ", sizeof(a));/*测的是数组的大小*/
return 0;
}
void fun(int *a, int len){
printf("%d ", sizeof(a));/*测得是 指针a 的大小*/
}
2. 关于指针字节大小的问题
#include<stdio.h>
int main(void)
{
double d = 3.14;
double *pd;
pd = &d;
printf("%d\n", sizeof(d));
printf("%d\n", sizeof(pd));
printf("%d\n", sizeof(*pd));
}
3. 关于指针的类型问题
#include <stdio.h>
int main(void)
{
int x;
char y;
double z;
int *px;
/*
是一个 指向int类型(只能指向int) 的指针,
并不是确定它占的字节,它的大小还是一个指针大小
*/
char *py; /*是一个 指向char类型(只能指向char) 的指针,*/
double *pz; /*同*/
printf("%5d,%5d,%5d\n", sizeof(x), sizeof(y), sizeof(z));
printf("%5d,%5d,%5d\n", sizeof(px), sizeof(py), sizeof(pz));
}