美文网首页
简单地使用C指针

简单地使用C指针

作者: 王伯卿 | 来源:发表于2018-05-12 21:28 被阅读0次

以下文章参考《C Primer Plus》
我们什么时候需要使用指针,当我们调用函数,函数需要改变变量的值时,我们就需要使用地址参数来完成这个任务。
假设我们定义了一个函数,这个函数接受两个参数,并且交换两个参数的值,如果不使用指针,我们也许会这样来完成:

#include <stdio.h>
void interchange(int u,int v);

int main(void){
  int x=5, y=10;
  printf("The value of x is %d\nThe value of y is %d\n",x,y);
  printf("after the function of interchange\n");
  interchange(x,y);
  printf("The value of x is %d\nThe value of y is %d\n",x,y);
  return 0;
}

void interchange(int u,int v){
  int temp;
  temp=u;
  u=v;
  v=temp;
}

最后输出结果为:

The value of x is 5
The value of y is 10
after the function of interchange
The value of x is 5
The value of y is 10

结果不如人意,因为interchage函数使用独立于x和y的变量,即使u和v的变量值交换了,对x和y也没有任何影响。所以,我们需要把x和y的地址给interchage函数,这样函数就可以追根溯源,在源头改变x和y的值了。我们可以这么做:

#include <stdio.h>
void interchange(int * u,int * v);

int main(void){
  int x=5, y=10;
  printf("The value of x is %d\nThe value of y is %d\n",x,y);
  printf("after the function of interchange\n");
  interchange(&x,&y);
  printf("The value of x is %d\nThe value of y is %d\n",x,y);
  return 0;
}

void interchange(int * u,int * v){
  int temp;
  temp=*u;
  *u=*v;
  *v=temp;
}

最后结果顺利的交换了,真实令人欣慰。

The value of x is 5
The value of y is 10
after the function of interchange
The value of x is 10
The value of y is 5

最后让我们再看看几个简单的基础操作:

#include <stdio.h>

int main(void){
  int x=5;
  int * ptr; //声明一个指针,声明指针时一般带有空格,并且要说明指针指向的数据类型
  ptr=&x; //将x的地址赋值给ptr指针,其中&是取地址的作用
  printf("the address of ptr is %p\n",ptr); //%p这个是专门给指针用的,输出地址不用带*
  printf("the value of ptr is %d\n",*ptr); //如果要输出地址上的值,就需要带*
  return 0;
}

最后结果为:

the address of ptr is 0061FF28
the value of ptr is 5

相关文章

  • 简单地使用C指针

    以下文章参考《C Primer Plus》我们什么时候需要使用指针,当我们调用函数,函数需要改变变量的值时,我们就...

  • Go语言-指针

    Go语言中的指针不同于C语言,Go语言的指针使用方法要简单很多。当然和C语言从指针定义到指针的使用都有很大的不同。...

  • 在Swift中使用C语言的指针

    在Swift中使用C语言的指针 在Swift中使用C语言的指针

  • [初学C++]浅谈C C++引用和指针的联系和区别

    为什么C/C++语言使用指针? ①一方面,每一种编程语言都使用指针。不止C/C++使用指针。每一种编程语言都使用指...

  • 在学习swift的一些笔记(三)

    objective-c与swift的万能指针id 在objective-c中id的简单使用: 最简单的例子,id代...

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • Qt/C/C++推荐代码规范

    Qt/C/C++工程推荐使用下面代码规范: 代码采用C/C++11标准,尽量使用智能指针,尽量不使用裸指针(QT中...

  • 面经——指针和引用的区别

    为什么使用指针 每一个编程语言都使用指针C++将指针暴露给程序员,而Java和c#将指针隐藏起来。 使用指针的优点...

  • go语言指针类型的使用

    go语言的指针类型 简单地说go语言的指针类型和C/C++的指针类型用法是一样的,除了出去安全性的考虑,go语言增...

  • C++智能指针

    引用计数技术及智能指针的简单实现 基础对象类 辅助类 智能指针类 使用测试 参考: C++ 引用计数技术及智能指针...

网友评论

      本文标题:简单地使用C指针

      本文链接:https://www.haomeiwen.com/subject/yzwhdftx.html