码迷,mamicode.com
首页 > 编程语言 > 详细

C语言基本语法——指针

时间:2018-04-26 21:12:56      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:数组元素   一个   col   lock   class   修改   多次   整数   没有   

  1、什么是指针

  2、指针用于参数

  3、指针用于返回值

  4、指针加减操作

  5、指针与数组区别

 

1、什么是指针

  ? 内存被分为字节,每个字节有唯一的地址,指针指的就是内存地址。

  ? 保存指针的变量,就叫指针变量。(保存地址)

  ? 声明一个指针变量

int i = 0;

int* p;//声明一个指针变量 int* 指针类型

int * p; int* p; int *p;

  ? 每个指针变量能指向一种特定类型的对象(地址,内存区 域)。

  ? 指针是引用数据类型,因为本身没有保存数据,只是保存了 数据的地址,间接的找到内存中的数据。

 

2、指针用于参数

  ? 值传递

void swap(int a, int b) {

  int temp = a;
  a = b;
  b = temp;

}

int main() {
  int a = 5, b = 8;

  swap(a, b);

  printf(“%d,%d”, a, b);

}

  ? 地址传递

void swap(int *a, int *b) {

  int temp = *a;
  *a = *b;
  *b = temp;

}

int main() {
  int a = 5, b = 8;

  swap(&a, &b);

  printf(“%d,%d”, a, b);

}

 

3、指针用于返回值

  ? 指针也可以做为返回值

  ? 不要返回自动变量的地址,因为局部变量的生命周期,当函 数结束,局部变量会被自动清除(释放)。解决方案:延长 生命周期。

 

4、指针加减操作

  ? 指针支持加整数、减整数、指针的比较和相减,但运算的单位由指针的类型决定。

    int类型指针+1 = 地址+4

    char类型指针+1 = 地址+1

  

5、指针与数组区别

  ? 占用内存空间

-数组占用空间 = 数组元素占用的空间*长度

-指针占用空间 = 在64位系统下,8个字节,固定的,与指针 的类型没关系。

  ? 赋值

-数组名是常量,是不可以修改其值

-指针是变量,可以多次赋值

-对指针的赋值,本质上是指针指向的改变

C语言基本语法——指针

标签:数组元素   一个   col   lock   class   修改   多次   整数   没有   

原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/8954670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!