C语言知识

1.指针

int main(){

char str2[10]="Hello";

printf("sizeof(str2): %d bytes\n", sizeof(str2));//  10     == array.length

printf("sizeof(&str2): %d bytes\n", sizeof(&str2));//sizeof(char*)

printf("%p\n", str2); // 0x7fff5fbff79e  

printf("%p\n", str2 + 1); //0x7fff5fbff79f  (== 0x7fff5fbff79e + 1)

printf("%p\n", (&str2));// 0x7fff5fbff79e

printf("%p\n", (&str2 + 1));0x7fff5fbff7a8 (== 0x7fff5fbff79e + 10 (== array.length))

printf("\n%p %c, %p %c\n",str2, *(str2), *(&str2), **(&str2));

// 0x7fff5fbff79e H, 0x7fff5fbff79e H      

// str2 == *(&str2) , *(str2) == **(&str2)

return 0;

}

http://stackoverflow.com/questions/15177420/what-does-sizeofarray-return/15177499#15177499   

其中答案还具体解释了Difference between char *str and char str[] and how both are stored in memory。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容