指针与引用的区别

昨天在面试时,面试的老师问了这样一个问题:“在C语言中,指针与引用有什么区别”。

    我没有听说过C语言中的引用,只好将指针稍微说了下,当提及引用时,我说我不知道。

    回家后在网上查阅了下资料,有关问题是这样说的:

          C语言没有引用啊,C++才有.

引用能起到指针的部分作用,但是比指针安全.

一个引用可以看作是某个变量的一个"别名"。对引用进行操作就像对原变量进行操作一样。

主要用于函数的参数传递时使用。因为C语言没有类似VB的“传引用调用”这个功能,所以C++的引用填补了这个空白。从此即使需要改动参数,也直接传递一个变量过去即可。这在操作符重载中有更重要的意义。等你学到以后才会明白。

int a;  //声明变量a
int& ra = a; //声明一个引用,名字是ra,ra引用了a

注意,ra声明的时候必须同时给出它到底引用了谁
int& ra; //只声明不指明是不对的。

还有,引用一旦声明,就不能再修改到其他变量上了,这与指针不同。
ra = b; //这是不行的,因为已经int &ra = a了

             原文见:http://zhidao.baidu.com/question/19449593           

            C++中引用和指针的区别:1、引用在定义时就应初始化,而指针不用。而且在任何情况下都不允许使用指向空值的引用(意味着引用的执行效率比指针要高,因为在引用使用前不需测试它的合法性)。

                     2、指针可以重新赋值,但引用却得从一而终,总是指向在初始化时指向的对象。

                     3、引用是一个变量的别名,不占存储空间。指针是个变量,占用存储空间。

不管这位老师问的问题正确与否,还是谢谢他。

### 实现 `el-table-column` 中鼠标移入时显示预览功能 为了在 Element UI 的 `el-table-column` 组件中实现当鼠标悬停于某行数据上时展示额外信息的效果,可以采用自定义模板的方式,在 `<template>` 标签内编写逻辑来响应鼠标的进入和离开事件。具体做法是在每一行的数据项包裹一层容器(如 `div`),并为此容器设置监听器处理这些交互行为。 下面是一个具体的例子: ```html <el-table :data="tableData"> <!-- ...其他列... --> <el-table-column label="操作" width="180px"> <template slot-scope="scope"> <div> <span>{{ scope.row.name }}</span> <!-- 显示默认内容 -- 预览框,默认隐藏 --> <transition name="fade"> <div v-if="hoveredRow === scope.$index" class="preview-box" @mouseleave="handleMouseLeave()"> {{ scope.row.description }} </div> </transition> </div> <!-- 添加 mouseenter 和 mouseleave 事件处理器 --> <div style="display:inline-block;" @mouseenter="handleMouseEnter(scope.$index)" @mouseleave="handleMouseLeave()"> 查看详情 </div> </template> </el-table-column> </el-table> ``` 在此基础上还需要配合 Vue.js 方法来进行状态管理: ```javascript export default { data() { return { hoveredRow: null, // 当前悬浮的行索引 tableData: [ {name:'Item A', description:'Description of Item A'}, {name:'Item B', description:'Description of Item B'} ] } }, methods: { handleMouseEnter(index){ this.hoveredRow = index; }, handleMouseLeave(){ this.hoveredRow = null; } } } ``` 这里使用了一个名为 `hoveredRow` 的变量用于追踪当前被选中的行号,并通过条件渲染 (`v-if`) 控制预览框的可见性。同时利用 CSS 过渡类 `.fade-enter-active`,`.fade-leave-active` 来平滑切换视图[^1]。 对于样式部分,则可以根据实际需求调整,比如给预览窗口加上阴影、圆角等装饰效果,以及定位方式使其相对于触发它的元素正确放置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值