今天无意中看到以前的代码,关于指针数组的一些知识点又忘了,记录一下,查缺补漏。
数组在代码中一般会退化为指向该数组第一个元素的指针,除了以下三种情况(C标准中有说明):
1,sizeof关键字后。char a[5], sizeof(a) 的值为5,并不是指针所占内存的大小。
2,&符号后。char a[5], &a+1的值为&a[0]+5*sizeof(char),并不是&a[0]+1(即a+1)。
3,作为初始化字符数组的字符串常量(字符串字面量)。char a[5] = "abcde",这句代码在编译器中是将在常量区的“abcde"拷贝给数组a,字符串常量是以字符数组的形式存在。