指针和引用的区别,指针和数组的区别
1.指针和引用最主要的区别应该在于引用是一个变量的别名,不分配内存区域。而指针有内存空间,存储指向对象的地址。要理解这一点可以从编译过程来看:编译成目标文件过程中,把指针和引用添加到符号表中,其中记录变量和变量所对应的地址。指针变量在符号表上对应的地址为指针变量的地址,而引用在符号表上对应的地址为引用对象的地址。符号表生成后就不会再改变,所以指针可以改变指向的对象,而引用一旦和某个对象绑定后就不再改变。
2.指针和数组的区别:(1)sizeof可以计算出数组的容量,而sizeof计算一个指针得到的是一个指针变量的字节数,而不是其所指内存的容量。当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。(2)修改内容上的差异:
char a[] = "hello word"; a[0] = 'x'; char* p = "hello word"; p[0] = 'x'; ///运行时出错。因为p指向的是常量区,不能修改。
还有一个区别:C语言结构体里的成员数组和指针
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步