c语言中指针强大的功能体现在哪里?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中指针强大的功能体现在哪里?相关的知识,希望对你有一定的参考价值。
初学c语言,老师一直说指针是个好东西,可是一直体会不深,有没有哪位高手可以给我讲一讲,最好详细些,有特别能体现出用指针与不用指针的差别的例子更好。
楼上说的对啊,用指针就是用来直接操纵内存的,动态申请空间就是其中一个应用。下面还有几种经典的用法:
1.指针变量作为函数参数,在函数中修改变量的值。这个不用指针很难实现(c++中有引用可以实现)
void swap(int * p1, int *p2)
// 在函数中交换两个变量的值
int tmp;
tmp = *p1;
*p1 = *p2;
*p2 = tm;
2.
你如果想在函数中返回多个值,应该怎么办呢?
可以选择从主调函数中向被调用函数传入参数,等待返回结果。
举例:
void func(int *pa, int *pb, int *pc)
// 你向函数中传入三个参数,可以得到三个返回值了。
……
3.指针的主要应用就是直接操纵内存,这样可以减少复制数据的时间。
struct Student
char name[10];
BOOL sex;
int score[10];
void func(struct Student *pst)
// 传址,减少了数据复制的时间,
// 有时为了防止参数被修改,可以改为 struct Student const *pst
void func(struct Student stu)
// 传值,需要把实参的值复制到stu中,有时耗费大量时间
4。
此外,还有常用到的数组,其实就是对内存直接操纵。其他的应用如指针与多维数组,指向函数的指针等。 参考技术A 如果光靠别人已经懂的指针的人来这里给你讲指针的妙处和指针的无穷好处,恐怕你也只能是听天书班的!指针的却是C中不可或缺的东西,如果不懂的指针,就说明你没有掌握C的精华,所以能体现出指针的重要性,而且不是靠别人来说你就会懂的!
如果你想知道,还是建议楼主慢慢的学习指针,学会利用它,自己慢慢发现他的妙处,和作用,这样做,比光看别人光说不练恐怕效果会有很大的不一样!指针,你会接触的,接触了,你会放不下。呵呵
加油吧 参考技术B 应该说C语言有很多东西不用指针根本就没法做,比如最基础的链表,没有指针怎么弄?
指针是C语言的灵魂,初学你可能体会不到,等到以后学一些数据结构或者算法的时候,指针的大量应用就体现出来了。 参考技术C 应该说, 在C语言中离不开指针. 在java或C#或ruby或python都无所谓的.
在C中, 最基本的申请一块内存...就需要用指针. 因为申请的内存是以指针的方式返回其地址的. 参考技术D 几乎凡是存储在内存中的,都可用指针指向:读和存的速度更快,比如:数组,函数,结构体等,都可用指针
c语言问题。我编的。初学函数。略懂指针。编了以下程序不知错在哪里。求高手帮忙
定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于平均成绩的有多少人?
#include<stdio.h>
main()
int fun();
int i,j,num;
float s[5][10];
for(i=0;i<5;i++)
for(j=0;j<10;j++)
scanf("%f",&s[i][j]);
num=fun(s[5]);
printf("%d",num);
getch();
int fun(float x[5][10])
int i,j;
int num=0,a,s=0;
for(i=0;i<5;i++)
for(j=0;j<10;j++)
s+=x[i][j];
a=s/50;
for(i=0;i<5;i++)
for(j=0;j<10;j++)
if(x[i][j]>a)
num++;
return num;
修改如下:
函数声明int fun();改成:int fun(float x[5][10]));
函数调用num=fun(s[5]);改成:num=fun(s);
int num=0,a,s=0;改成:int num=0; float a,s=0; 参考技术A 函数声明要写在main函数外面
即int fun();不能放在main函数中 参考技术B 你的a,b声明的大小是100x81,但在tra函数中,你又把它们当成m x n的二维数组来处理,当然出错了
以上是关于c语言中指针强大的功能体现在哪里?的主要内容,如果未能解决你的问题,请参考以下文章