学习自狄泰软件学院唐佐林老师C语言课程,文章中图片取自老师的PPT,仅用于个人笔记。
实验1 : sizeof(数组名) 求 数组大小
#include <stdio.h>
int main()
{
int a[5] = {1, 2};
int b[] = {1, 2};
printf("a[2] = %d\n", a[2]);
printf("a[3] = %d\n", a[3]);
printf("a[4] = %d\n", a[4]);
printf("sizeof(a) = %d\n", sizeof(a));
printf("sizeof(b) = %d\n", sizeof(b));
printf("count for a: %d\n", sizeof(a)/sizeof(int));
printf("count for b: %d\n", sizeof(b)/sizeof(int));
return 0;
}
mhr@ubuntu:~/work/C$ ./a.out
a[2] = 0
a[3] = 0
a[4] = 0
sizeof(a) = 20
sizeof(b) = 8
count for a: 5
count for b: 2
mhr@ubuntu:~/work/C$
mhr@ubuntu:~/work/C$
实验2
#include <stdio.h>
int main()
{
int a[5] = { 0 };
printf("a = %p\n", a);
printf("&a = %p\n", &a);
printf("&a[0] = %p\n", &a[0]);
return 0;
}
mhr@ubuntu:~/work/C$ gcc 27-2.c
mhr@ubuntu:~/work/C$
mhr@ubuntu:~/work/C$
mhr@ubuntu:~/work/C$ ./a.out
a = 0x7fff43e20ce0
&a = 0x7fff43e20ce0
&a[0] = 0x7fff43e20ce0
mhr@ubuntu:~/work/C$
实验3
#include <stdio.h>
int main()
{
int a[5] = {0};
int b[2];
int* p = NULL;
p = a;
printf("a = %p\n", a);
printf("p = %p\n", p);
printf("&p = %p\n", &p);
printf("sizeof(a) = %d\n", sizeof(a));
printf("sizeof(p) = %d\n", sizeof(p));
printf("\n");
p = b;
printf("b = %p\n", b);
printf("p = %p\n", p);
printf("&p = %p\n", &p);
printf("sizeof(b) = %d\n", sizeof(b));
printf("sizeof(p) = %d\n", sizeof(p));
// b = a;
return 0;
}
mhr@ubuntu:~/work/C$ ./a.out
a = 0x7ffe4a002cf0
p = 0x7ffe4a002cf0
&p = 0x7ffe4a002cd8
sizeof(a) = 20
sizeof(p) = 8
b = 0x7ffe4a002ce0
p = 0x7ffe4a002ce0
&p = 0x7ffe4a002cd8
sizeof(b) = 8
sizeof(p) = 8
mhr@ubuntu:~/work/C$