我们知道通过sizeof可以求得一个变量的大小,通过&符号可以取一个变量的地址,那当它们对一个变量或者数组操作时又有何不同呢?
1. sizeof
首先,sizeof不是函数,而是一个表达式,可以求变量或者类型所占空间的大小.
1).变量
sizeof求变量的大小时可以不加(),如:sizeof a;但是求类型必须加(),sizeof(int) 。
对一个int类型的变量大小为多少呢?通过sizeof我们可以看出:
int s = 9;
printf("%d\n",s);
结果为:4
2). 数组
sizeof也可以求一个数组的大小,当sizeof(数组名)时,数组名表示整个数组,表达式求的是整个数组的大小,单位是字节。
例如:
int arr[4] = {1,2,3,4};
printf("%d\n,sizeof(arr));
这个数组的大小是:4 * 4 = 16
2. &取地址
&取地址,表示取某一个变量的地址。
1).变量
可以将一个变量的地址以不同的形式打印出来。