①如果数组都没有初始化,到底有没有值?
答:有值,全是不确定的垃圾值,
②如果数组进行的部分初始化。
int a[10] = {1};//未初始化部分自动初始化为0
int b[10] = {2.3f};//未初始化部分自动初始化为0
char ch[10] = {'a','b','c'}//未初始化部分元素的ASCII码被自动初始化为0了。
那么没有初始化的那部分的元素也自动被系统初始化为0
特别强调:使用先定义后初始化的方式,系统就不会自动给没有初始化的元素赋0了。
强调:数组名 代表数组的首地址。eg: printf("%p",a);这里的a不用加地址获取符号&
但是数组中某一个值得地址就要加地址获取符号& eg: printf("%p",a[0]);
数组里边各个值得地址是连续的。
知道数组的首地址,怎么计算数组第n个元素的地址。
公式
int a[];
第n个元素的地址 = 首地址+sizeof(int)*n
|
|