2.7-C语言入门-指针

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;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,848评论 3 44
  • 1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧...
    金巴多阅读 5,891评论 0 9
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,763评论 0 38
  • 前言:指针是 C语言一个重要概念,也是C 语言的一个重要特色。使程序简洁、紧凑、高效。指针乃是C之精华。 数据在内...
    潇湘候晨雪阅读 4,181评论 0 0
  • 浓重的夜色 像是一张网 吞噬一切 所有有光亮的东西 都在拼命释放着亮度 也仅能照亮周围 还比不上星星 我们生活的空...
    朗月微光阅读 3,803评论 0 35

友情链接更多精彩内容