社区
C语言
帖子详情
c语言为什么要用指针?它有什么用?
harryzm
2008-06-19 11:18:36
c语言为什么要用指针?它有什么用?
它不就是指向内存的一个地址吗,为什么变量不能代替呢?
...全文
1506
42
打赏
收藏
c语言为什么要用指针?它有什么用?
c语言为什么要用指针?它有什么用? 它不就是指向内存的一个地址吗,为什么变量不能代替呢?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
42 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liangchencf
2008-08-05
打赏
举报
回复
你说对了,变量就是符号,符号就是地址。而指针变量就是赋予你操作这些地址的工具。
[Quote=引用 41 楼 hw80520997 的回复:]
我也来说两句吧,如果指针那么好的话那还要变量做什么啊?设计的时候直接把变量做成像指针那样指向内存地址不就可以了吗
[/Quote]
hw80520997
2008-08-02
打赏
举报
回复
我也来说两句吧,如果指针那么好的话那还要变量做什么啊?设计的时候直接把变量做成像指针那样指向内存地址不就可以了吗
sc_gw
2008-06-23
打赏
举报
回复
[] Node *axnode = (NODE *)malloc(sizeof(NODE));
if (NULL == axnode)
{
return FALSE;
}
[]
bioruan
2008-06-23
打赏
举报
回复
个人认为compiler在汇编过程中应该可以自动区分究竟是用pointer,还是copy by reference,还是copy by value最合适的问题.何必非要麻烦operator呢?说不定C++++那一个版本的语言就不要指针了. 还有啊,JAVA就没有指针哦,不是照样可以写程序吗...
ForestDB
2008-06-21
打赏
举报
回复
因为需要直接操作地址。
lin_style
2008-06-21
打赏
举报
回复
[Quote=引用 33 楼 liangchencf 的回复:]
指针并不是因为C语言才有的。寻址、执行这么一个过程就是计算机的基本原理。尽管很多高级语言都没有指针,但程序的运行就是靠着不停的寻址来运行的。可执行的机器码、全局变量、局部变量和程序返回地址等这三块二进制数都存放在内存中。而只有cpu具有计算功能,他的计算实际上非常弱,每次只能算一个非常简单的算术运算或逻辑运算(但运算速度惊人)。要把程序代码和变量从内存传到cpu就需要通过找寻数据在内存中的地址,然后通过…
[/Quote]
精辟。这才是一个实用主义
相比飞雪,飞雪有点理论化。。。
antss
2008-06-21
打赏
举报
回复
弄本简单的数据结构看看,就知道为什么需要指针了。
lwouyang
2008-06-21
打赏
举报
回复
没有指针的C语言将是死水一滩
lwouyang
2008-06-21
打赏
举报
回复
忘了是谁说的一句话:
指针是C语言的灵魂!
个人觉得还有些道理吧.
xkyx_cn
2008-06-20
打赏
举报
回复
多给你发了杆超级牛的枪
[Quote=引用楼主 harryzm 的帖子:]
c语言为什么要用指针?它有什么用?
它不就是指向内存的一个地址吗,为什么变量不能代替呢?
[/Quote]
xkyx_cn
2008-06-20
打赏
举报
回复
多给你发了杆超级牛的枪
[Quote=引用楼主 harryzm 的帖子:]
c语言为什么要用指针?它有什么用?
它不就是指向内存的一个地址吗,为什么变量不能代替呢?
[/Quote]
stars_eyes
2008-06-20
打赏
举报
回复
说两句,不对的地方,楼下的指正。
指针就是地址,另外还有指针变量,也就是存放地址的变量。
平时使用的别的变量(指的指针变量以外的变量),就是用变量名字代表了它所在的空间,本质还是到这个地址去访问;而用指针变量访问,就是直接访问这个空间了,因此更高效。
就说这么多,后面的补充、修正,呵呵
baihacker
2008-06-20
打赏
举报
回复
[Quote=引用 4 楼 steedhorse 的回复:]
指针就是变量啊。。。。。
[/Quote]
指针变量是从指针本身的意义来说,
指针是一种类型
这种类型的对象有一种*运算,可以把指针本身的值当地址,指针指向的类型作为类型,去解释这个地址的内容.
这种运算也叫"非关联化"
这些都仅仅是从类型,语义来讲.
站在高一层:
"去操作另一个对象",才是其存在的思想来源.
显式的是指针
隐式的是引用(使用C++中引用的概念).
而他们都是引用(使用类型系统的概念).
xkyx_cn
2008-06-20
打赏
举报
回复
把10个MM叫来排队
[Quote=引用 12 楼 bad_alloc 的回复:]
你要和10个mm相亲,给10个mm每个人发一张照方便呢,还是把你本人打包装箱10mm都发一遍方便?
[/Quote]
晨星
2008-06-20
打赏
举报
回复
指针就是变量啊。。。。。
liangchencf
2008-06-20
打赏
举报
回复
指针并不是因为C语言才有的。寻址、执行这么一个过程就是计算机的基本原理。尽管很多高级语言都没有指针,但程序的运行就是靠着不停的寻址来运行的。可执行的机器码、全局变量、局部变量和程序返回地址等这三块二进制数都存放在内存中。而只有cpu具有计算功能,他的计算实际上非常弱,每次只能算一个非常简单的算术运算或逻辑运算(但运算速度惊人)。要把程序代码和变量从内存传到cpu就需要通过找寻数据在内存中的地址,然后通过数据总线和地址总线传进cpu运算(那两个总线就是实实在在的电线!)。所以如果你了解了程序的机构就可以根据地址去做很多很灵活甚至是很诡异的操作。不仅如此,你想做的所有操作也都离不开地址。
即使让你自己去设计一个语言,你会发现,类似指针这么个概念也是不可缺少的,离开它计算机就无法工作了。。。
可以没有指针变量这么个东西,但是指针,地址还是会有的。
bad_alloc
2008-06-20
打赏
举报
回复
你要和10个mm相亲,给10个mm每个人发一张照方便呢,还是把你本人打包装箱10mm都发一遍方便?
na_he
2008-06-20
打赏
举报
回复
就是c预言的道吧,结合os的设计,你可能有深刻的理解了。
zyw052553
2008-06-20
打赏
举报
回复
指针不是必需的,如Java就消除了指针
但是指针能够提高效率,方便程序员对系统底层操作
ouyh12345
2008-06-20
打赏
举报
回复
堆和栈还是有区别的,而且挺大
加载更多回复(22)
C语言
中为什么要使用
指针
1、问:什么是
指针
? (1)“
指针
”是一种数据类型,或者说一系列数据类型的泛指(包括int* float*等) (2)也有很多时候,说起“
指针
”,指的是“
指针
变量”,其存储的是值的地址 所以看到相关描述存在差异时,不要诧异 为了避免文字描述的歧义,直接看代码: int* p1; (3)上述声明创建了一个“
指针
”p1 (指的是“
指针
变量”p1) (4)int* 是一种类型——指向int的“
指针
”...
C语言
指针
为什么有类型
在
C语言
中,我们发现
C语言
的
指针
是需要声明类型的,为什么呢?
指针
不就是存储数据的地址值,不都是一样的大小吗? 的确如此 答案是: 因为
指针
变量存储的是一个内存空间的首地址(第一个字节的地址),但是这个空间占用了多少字节,用来存储什么样类型的数,则是由
指针
的类型来标明的。这样系统才知道应该取多少个连续内存作为一个数据。 ...
简述
C语言
中为什么
要用
指针
在
C语言
中,
指针
的使用是非常重要的,主要由于以下几个原因:直接访问内存:
指针
允许程序直接访问和操作内存。这使得程序能够与硬件直接交互,提供了对底层数据结构的更精细控制,这在系统编程中尤其重要。提高程序效率:使用
指针
可以减少数据复制的需要,从而提高程序的效率。例如,通过传递指向大型数据结构的
指针
(而不是整个结构的副本)给函数,可以减少内存使用和处理时间。动态内存分配:在
C语言
中,使用
指针
可以动态地在运行时分配和释放内存。这对于创建灵活大小的数据结构(如链表、树等)和处理不确定大小的输入非常重要。
C语言
为什么
要用
指针
?
本来可以用变量名来访问变量,那为什么还
要用
指针
呢?是不是找麻烦呢? 将从以下两点解释为什么
要用
指针
一、
指针
可以向指定的地址赋值 首先看一段代码 #include<stdio.h> #include<stdlib.h> int main() { int data = 10; printf("data的地址=%p\ndata = %d\n",&data,data); system("pause"); return 0; }
【
C语言
】
指针
基础:为什么说
指针
是
C语言
的灵魂?
指针
是
C语言
的精髓,理解
指针
就是理解程序的灵魂。掌握这些核心要点,你就能驾驭这把"双刃剑"!
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章