指针2
指针与函数
●可以把指针作为函数参数传递,能在函数内部修改外部变量的值,实现双向传递数据的效果,比如void swap(int *a, int *b)函数,在函数内通过解引用交换*a和*b的值,就能改变传入的实参的值。
●函数也可以返回指针,但要注意返回的指针不能指向函数内的局部变量(因为函数执行完局部变量就销毁了,返回其指针会导致访问非法内存),一般返回动态分配内存的指针或者全局变量的指针等合法情况。
指针的算术运算
●指针加上或减去一个整数,实际移动的字节数取决于指针所指向的数据类型的字节长度,例如指向int类型(通常占4字节)的指针加1,地址值增加4字节;指向char类型(占1字节)的指针加1,地址值增加1字节。
●两个指针相减,结果是它们之间相隔元素的个数(前提是指向同一数组中的元素)。
指针的类型
●不同类型的指针不能随意混用,例如int *类型指针不能指向double类型的数据,编译器会发出警告或报错,必须进行类型转换(强制类型转换可能带来数据解释错误等风险,要谨慎使用)。
多级指针
●像int **pp;是二级指针,pp指向的是另一个指针变量(该指针变量再指向int类型数据),常用于处理指针数组等复杂的数据结构或者函数参数中传递指针的地址等情况。
●可以把指针作为函数参数传递,能在函数内部修改外部变量的值,实现双向传递数据的效果,比如void swap(int *a, int *b)函数,在函数内通过解引用交换*a和*b的值,就能改变传入的实参的值。
●函数也可以返回指针,但要注意返回的指针不能指向函数内的局部变量(因为函数执行完局部变量就销毁了,返回其指针会导致访问非法内存),一般返回动态分配内存的指针或者全局变量的指针等合法情况。
指针的算术运算
●指针加上或减去一个整数,实际移动的字节数取决于指针所指向的数据类型的字节长度,例如指向int类型(通常占4字节)的指针加1,地址值增加4字节;指向char类型(占1字节)的指针加1,地址值增加1字节。
●两个指针相减,结果是它们之间相隔元素的个数(前提是指向同一数组中的元素)。
指针的类型
●不同类型的指针不能随意混用,例如int *类型指针不能指向double类型的数据,编译器会发出警告或报错,必须进行类型转换(强制类型转换可能带来数据解释错误等风险,要谨慎使用)。
多级指针
●像int **pp;是二级指针,pp指向的是另一个指针变量(该指针变量再指向int类型数据),常用于处理指针数组等复杂的数据结构或者函数参数中传递指针的地址等情况。
全部评论
相关推荐
03-02 17:02
Nanyang Technological University 数据分析师
在改简历的大卫很认真:天天有面试 = 你已经在 offer 门口了。
海投能面成这样,说明你的简历、基础、学历都是过关的,缺的只是一次刚好匹配的缘分。
关于你说的 SQL 恐惧,我帮你捋一下:
- 面试里考来考去,真就那几类:
分组、去重、关联、子查询、窗口函数(row_number、rank、sum 开窗)
- 面试官要的不是“写得花里胡哨”,而是思路稳、不出错。
你恐惧的本质不是不会,
是怕临场卡壳、怕写错、怕被追问。 点赞 评论 收藏
分享
查看15道真题和解析