美文网首页
c语言指针

c语言指针

作者: 夜沐月 | 来源:发表于2018-07-11 14:40 被阅读5次

1    概念 

指针变量也是一个变量,其值是一个整数(整数的大小取决于操作系统的位数,地址虽然是一个整数,但地址是一个特殊的整数,是不能直接通过整数来操作的,*  告诉编译器变量是指向地址的,而不是简单的指向一个整数),指针存放的内容是一个地址,该地址指向一块内存空间(内存的存储最小单位是字节,每个字节都有一个唯一的编号,这个编号就是内存地址)。

指针定义简单解释 指针定义简单解释 指针定义简单解释

2 定义

int a = 10 ;     int *p = &a;  //   其中 int *p = &a 等同于 int *p;  p=&a;  // *p : 指针指向的内存空间存放的值 // int *p 表示定义一个指针变量

指针使用

3  注意点

无类型指针 : 定义一个指针变量,但不指定它指向具体哪种数据类型。可以通过强制转化将 void*转化为其他类型指针,也可以用(void*)将其他类型的指针强制转化为void类型的指针

NULL在c语言中定义为 (void*)0

空指针 : 指向NULL的指针 ;

野指针 :没有具体指向任何变量地址的指针

野指针举例

指针的兼容性 :我们可以把一个char*赋值给int*,不可以把一个double*赋值给int*,c语言给警告,c++直接报错

int a = 0x1234; char *p = &a ;  printf("%x\n",*p);

char *p = &a ; 会导致数据的丢失

指针的兼容 指针的兼容

如何把一个整数的四个字节都取出来?

取出整数四个字节

4 指针变量移动时的变化

int array[100] = [1,2,3,4,5,6];

int *p = array   // 数组取地址直接用数组名 等同去地址符号 &  等同于 int*p;p=array

printf("%u\n",p);

p++; // 指针移动一个int的内存大小,换成其他数据类型相同

prift("%u\n",p);

5 指向常量的指针与指针常量

const

6 指针运算

指针运算不是指针对应的整数简单的加减,是指针类型对应数据类型字节数加减

指针运算 指针运算

5 指针变量写法不同时的区别

相关文章

  • C语言05- 指针

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

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言指针总结大学霸IT达人

    C语言指针总结大学霸IT达人 C语言的指针是C语言区别其它语言的最主要的特定之一。有了指针,C语言就可以抛开所有束...

  • 带小白学C语言指针

    C语言里指针才是C语言的开始和指针;C语言里基本所有东西都是由指针演变而成; 指针是指向地址的变量,类型就是指针...

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

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

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

  • Go语言-指针

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

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • iOS开发 -- C语言基础8(指针)

    iOS开发 -- C语言基础8(指针) 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很...

网友评论

      本文标题:c语言指针

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