2016 - 2024

感恩一路有你

c语言编程指针详解 c语言指针编程题解题思路?

浏览量:2724 时间:2023-06-18 13:40:11 作者:采采

c语言指针编程题解题思路?

指针就是变量或函数地址,可以直接或间接寻址,可以节省内存占用。

c语言指针怎么用?

1.指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;

2.C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;

3.C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。

(C语言)地址为什么要变成指针才能赋值给指针变量呢?

指针即地址。所以您的问题问的不对。

我所理解的应该是想问为什么变量需要取地址以后再赋值给指针变量,即int a,*p; p

先讲个小概念,数字23,在“今年我23岁了”这句话中23的语义是年龄;在“我的偶像身穿23号篮球服”这句话中23是篮球服的编号。也就是说数字23在不同的语句环境中语义不一样。

回归正题,int a,*p; p 在这里我们定义了两个整形变量,在内存中他们都存放的是二进制编码,但是他们的语义是不一样的,一个用来存放整数,一个却是用来存放指向一个整形变量的指针(指针即地址)。简单说这两个变量可不一样,一个是普通变量存放常用的数值,一个是特殊变量(所以还要加个*号区分一下)存放另外一个变量的物理地址。

这么讲您能明白嘛?不明白的话可以再邀请我回答这个问题。

C语言中指针的*号和乘法的*号,怎么更好的区分?

说起C语言的这个指针的星号,我觉得有时候真的很容易引起人的误会啊。当初老外在发明设计C语言的时候,怎么没有想到这个星号会与乘法符号相互混淆呢?不过既然C语言已经发明了这么多年了,全世界使用C语言也很嗨嘛,再去修改这个规定也不现实,那么我们就从自身出发,看看这个星号怎么去区别指针和乘法吧。

其实星号什么时候是用在指针上,什么时候用到乘法上,还是比较容易区分的。

对于指针而言,星号一般出现在两个场合,一个是指针定义的场合,一个是指针使用的场合。在定义指针的场合,就是在定义指针时前面加个星号而已,比如:

int *p;

这个就死记硬背吧,指针定义时前面的星号就是告诉编译器变量p就是个指针,除此之外没有别的意思了。

在指针使用的场合前面会加个星号。注意不是定义指针哦,是使用指针,比如:

*p 1;

上述这个语句的意思就是使用指针,怎么使用?就是把指针指向的值加上1.这个也死记硬背吧,使用指针时前面的星号就是告诉编译器我要用指针了,除此之外也没有别的意思了。

那么在做乘法的时候,星号就是一个运算法则。如果在乘法中药用到指针的话,可能会出现如下写法:

1 * *p

意思就是1与指针指向的值相乘。此时怎么区分?就是最贴近指针变量p的那个星号是用于指针的,也就是指针定义时使用。

如果C语言能重新发明一次,也许发明者会用个#、$或者其他的什么字符来代替*吧,因为表示指针的*和乘法的*确实容易混淆。

我认为你说的是在阅读别人代码时,会不会出现分不清 指针* 还是 乘法* 操作符号。

如果我理解的没有错的话,这个问题应该不用担心,因为按照C语法规则,乘法操作符号 * 两边类型相同,那么你就看操作符前后类型了!

指针 语言 星号 变量 乘法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。