| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 19487 人关注过本帖, 3 人收藏
标题:指针用途大吗,有什么用
只看楼主 加入收藏
a563622106
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2011-2-14
结帖率:75%
收藏(3)
已结贴  问题点数:20 回复次数:24 
指针用途大吗,有什么用
指针一直没看懂,感觉用指针和不用没什么区别,而且C语言老师说指针是嵌入式技术用的,我们软件的不用学,所以我想了解指针到底有什么用,用和不用的区别在哪
搜索更多相关主题的帖子: 嵌入式 C语言 软件 老师 
2011-02-19 18:04
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:1 
指针没学就别说你学程序的

勤能补拙,熟能生巧!
2011-02-19 18:07
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:1 
学不学指针对你学程序,影响不大。现在都是面向对象,你懂得调用是没有问题。
p.s 程序无处不指针,在高级语言中只是你看不见.

小代码,大智慧
2011-02-19 18:13
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:1 
指针存在的理由确实有些怪异。
但就指针这个知识点而言,真的没有多大存在的必要性,因为它主要起到“间接引用”的作用,可以不必出现指针,直接引用相关的变量或数组元素就足够了。(这里我要声明,对于初学者而言,什么直接对内存访问啊、什么可以直接访问硬件接口啊等的问题都是没有什么意义的。)
但是,当楼主学习了函数之后,你就会发现,如果没有指针的存在,那么就无法实现“通过一个子函数更改其父函数中两个或两个以上的变量的值”的功能了。(这里我还要声明,对于学习C语言而非C++的初学者来说,“引用传递”的概念也是没有什么意义的。毕竟学习是有阶段性的。)
举例说明:
编写一个能交换两个变量的值的函数(任意指定的两个变量):
void Exchange(int, int);

void Exchange(int a, int b)
{
    int c;

    c = a;
    a = b;
    b = c;
}

int main(void)
{
    int m, n;

    scanf("%d %d", &m, &n);
    Exchange(m, n);
    printf("%d %d\n", m, n);
}
相信楼主对这个例子应该很了解了,结果是,Exchange()函数没有实现交换两个变量的值的功能。
原因有3个:
1、C语言的函数具有“高度的独立性”:指C语言的函数所定义的局部变量(包括形参变量)只能在本函数体内被引用,不能被其他函数引用;而函数自己也不能调用其他函数的局部变量;
    所以,不能通过直接修改“父函数”局部变量的方法实现前面所提到的功能。语法都无法通过。
2、C语言函数的返回值最多只有一个,所以不能通过同时返回两个或两个以上的值的方式实现前面所提到的功能。
3、C语言函数的实参与形参之间,只有“值传递”一种数据传递方法。这也就是说,形参变量(注意我这里将所有的形参全部看成是变量,根本没有数组等形式)的值,是实参表达式的值的“复制”版,因此,以后无论对形参变量进行什么样的更改,都不会更改实参表达式中相关变量的值。
由于存在上述严厉的现实,因此,要实现前面所说的功能,就只能依靠指针,进行“间接”更改了。
而这正是指针赖以存在的基本理由!

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-19 18:23
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:1 
指针是C的精华啊,你没学指针约等于没学C语言

免费赠送河蟹一只
2011-02-19 18:28
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:1 
学C 不会指针,那基本上废了.

樱花大战,  有爱.
2011-02-19 20:58
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
指针是什么? 指针就是内存. 在有权限的情况下,提供你操作内存的手段.

樱花大战,  有爱.
2011-02-19 21:02
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:1 
学习了。
2011-02-19 21:43
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:1 
指针就是寻址

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-19 21:51
wolonga123
Rank: 2
等 级:论坛游民
帖 子:25
专家分:35
注 册:2010-9-16
收藏
得分:1 
学好指针才叫学了c语言
2011-02-19 21:59
快速回复:指针用途大吗,有什么用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017740 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved