什么时候必须用指针,C语言什么时候需要定义指针什么时候需要定义变量

1 , C语言什么时候需要定义指针什么时候需要定义变量希望对你有帮助!如果你存储的是数值或者字符的信息 , 那么就定义变量;如果你需要记录一个变量在计算机内存中的存储地址,那么你定义的就是指针 。一般情况下都用的是 变量,调用 函数,返回值 是指针类型,函数传递 地址,指针需要指向一个地址 , 所以,你不可能直接定义 指针而没有 指向,要指向一个地址的,所以一般情况你会先定义变量,需要用到指针,来方便对这个 变量直接进行操作,猜用指针,一般情况下都是定义为普通变量但在需要访问地址的时候就需要定义指针变量
2,什么情况下是必须使用指针的请举一两个例子在使用指针可以简化问题或者让函数接口的偶合性更低的时候可以考虑使用指针,没有必须使用指针的情况,用指针的情况都可以不用指针来解决.做链表要用到指针 。在C语言中,函数参数传递方式为传值,如果想在函数中改变所传参数的值,就要用到指针 。比如交换两个变量值的函数 , 如果写成下面这样,就什么效果都没有 。void swap(int a, int b)int t;t = a;a = b;b = t;}应该写成这样:void swap(int *a, int *b)int t;t = *a;*a = *b;*b = t;}C++有引用传值 , 也可以达到同样效果 。你是要动态数组 还是用访问数组的地址来排序
3,什么情况下需要声明和使用指针变量没有指针变量;函数调用时byval为值传递 , byref为地址传递,VB默认采用地址传递 , 完全不用到指针的概念,这也是VB简单的地方的体现其中第二行等同于int *ptr;ptr=value;还是int *ptr;*ptr=value;这个说错了哪个都不等于,真正等于的是int *ptr;ptr = &value;你说的第一个是错的,因为value是int类型,ptr是一个int指针,类型不同用赋值符号就毫无意义了 。第二个你给ptr赋值,但是这和把value的地址给ptr的意义有天壤之别 , 首先ptr现在没有指向任何东西,这样的代码会导致错误 。其次就算ptr指向了某个东西这段代码能成功,但是这也表示value赋值给ptr指向的内存而已 , 你的原程序假设在对ptr进行修改是可以修改value的值的,因为value的地址给了ptr,而你下面提问的第二个是达不到这个效果的 。【什么时候必须用指针,C语言什么时候需要定义指针什么时候需要定义变量】

    推荐阅读