美文网首页
2.7-C语言入门-指针

2.7-C语言入门-指针

作者: 江阔 | 来源:发表于2018-01-07 22:53 被阅读0次

1.指针的含义-变量的地址

a.指针:C语言中用“指针”来表示内存地址(即:指针指向了内存地址),即“指针”可理解为“变量的地址”,指针是一个unsigned类型的整数
b.变量的地址:即变量占用的字节中第一个字节的地址,计算机通过该地址找到某个变量
c.如何获得变量的地址:在变量前面加上“&”,就表示变量的地址

2.指针变量

a.指针变量:用来存放指针(即变量的地址),表示方式是在某种数据类型后面加星号*
int* p;
double* p;
char* p;

b.给指针变量赋值的方式:把变量的地址取出来,然后赋给对应类型的指针变量
int a;
int* p = &a;
注意:地址&a是赋值给p而不是*p的(即:星号是类型的一部分)

3.指针与数组

a.数组名称也可作为数组首地址使用

 int a[10]=1; 
 int* p = a;  //相当于int* p = &a[0]  

b.两个int型的指针相减,等价于在求两个指针之间相差了几个int

4.使用指针变量作为函数参数

a.含义:把变量的地址传入函数。如果在函数中对这个地址中的元素进行改变,原先的数据就会确实地被改变。

 void change(int* p){ 
   *p=233; 
  }

b.单向一次性的值传递:相当于产生一个副本

void swap(int a,int b){
  int temp=a;
  a=b;
  b=temp;
}

c.使用指针变量作为参数时的地址传递:只有在获取地址的情况下对元素进行操作,才能真正地修改变量

void swap(int* a,int* b){
   int temp=*a;
  *a=*b;
  *b=temp;
}

5.引用

a.是C++的一个强有力的语法,使用时文件须保存为.cpp类型
b.引用:不产生副本,而是给原变量起了个别名。对引用变量的操作就是对原变量的操作
c.格式:在函数的参数类型后面加个&(注意:引用并不是取地址的意思)

void change(int &x){
  x=1;
}

d.指针的引用:

void swap(int* &p1,int* &p2){
  int* temp=p1;
  p1=p2;
  p2=temp;
}

相关文章

  • 2.7-C语言入门-指针

    1.指针的含义-变量的地址 a.指针:C语言中用“指针”来表示内存地址(即:指针指向了内存地址),即“指针”可理解...

  • C语言学习(第一天)

    C语言基本数据类型 输入和输出函数 指针入门 C语言指针实现数据交换 指针的常见错误 不可以使用已经被回收的变量 ...

  • C 语言程序设计---函数

    一篇入门级别的C语言函数,值得一看。 上次写了 C 语言入门级别的指针,这篇写函数,指针和函数在一起使用,更有意思...

  • 100000571 - 《算法笔记》2.7小节——C/C++快速

    100000571 - 《算法笔记》2.7小节——C/C++快速入门->指针 问题 A: C语言10.1 [命题人...

  • C语言入门之指针

    目的: 通过以下学习,希望能理解指针的概念,理解指针和数组的关系,理解指针的定义,掌握指针的用法。 1. 简述 用...

  • 女神悄悄告诉你:再不学C语言就晚了

    c语言入门 程序设计-算法-运算符-顺序 分支 循环结构。 C语言精通 数组-函数字串符 -指针-构造类型-预处理...

  • C语言入门开发-指针

    指针1、认识指针[地址]内存每个直接都有一个唯一编号,称为地址[指针]存放数据的地址 变量与内存地址的关系1、变量...

  • Go语言入门总结(六)-指针

    指针 1.&和* 在go语言中,也有指针的概念,不同于java。是没有指针的概念的。但是go语言的指针也并没有c中...

  • Go语言入门:map和指针

    Map 声明和初始化 方式一 方式二 以上两种声明和初始化方式效果是一样的,根据实际情况选用。试试访问不存在的Ke...

  • 为什么这么多人学不会C语言?

    很多人觉得用C语言作为入门语言觉得太难了,里面还有指针,回调,递归之类的操作太难了。为什么这么多人觉得C语言难?笔...

网友评论

      本文标题:2.7-C语言入门-指针

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