指针的使用和理解

参考了以下文章

https://blog.csdn.net/Noriaki/article/details/82593458

https://blog.csdn.net/qq_41620518/article/details/81143414

 

如何理解指针的使用

//下面代码是我刚接触指针犯的一些错误,下列代码是会报错的
int *a;
a=100;
cout<<a;

//后来学聪明了,知道不能直接给指针赋值,但是还是错了,程序没有任何输出
int main(){
	int *a;
	*a=100;
	cout<<a; 	
}
//使用指针是需要先分配空间的,但是输出的不是我们想要的“100”
int main(){
	int *a=new int;
	*a=100;
	cout<<a; 	
}

//这才是我们想要的结果
int main(){
	int *a=new int;
	*a=100;
	cout<<*a; 	
}

 

小结:需要注意的是在使用int *a=new int;定义指针时,不要把“*a”理解为指针,因为“a”才是我们定义的指针。

 

*和&的区别

  1. *在定义的时候,表示定义指针类型,其他时候,表示对指针进行取值操作
  2. &表示取地址,可以用来取变量的地址,也可以用来取指针的地址

 

"->" 和" ."的区别

  1. 可以把“->”和“.”都理解为中文中 “的” 的意思。
  2. “->”是跟在结构体指针后面的,表示成员的提取
  3. “.”是跟在结构体对象后面的,表示这个对象“的”某一个属性

 

使用指针是需要先分配空间的

Student *stu=new Student[n];//为*stu分配Student[n]大小的空间,声明指针才需要分配空间,
                            //声明变量则不需要,因为编译器会自动分配并管理

 

 

 

指针当作参数传递给函数是应该怎么做?

可以简单把函数的形式参数理解为这个函数本身的一个属性,然后当外部传参数进来的时候,就会把外部的参数赋值给函数本身的属性。

指针可以分为2种,一种是分配了空间的,是实实在在存在的指针。

另外一种就是,没有分配空间的指针,这类指针一般是在定义的时候,把已存在的指针赋值给它,作用是用来操作那个已经分配空间的指针。

如果函数的形式参数是指针,那么这个形式参数一定是第二种指针。

 

以下例子来自作者:Noriaki

https://blog.csdn.net/Noriaki/article/details/82593458

1.下边看第二个例子

这个是虽然想传址,但是方法错了,那么请看下一个例子(这是传址的正确使用方法)

 

2.请看第三个例子(传址的正确使用方法)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值