美文网首页程序员
C 语言之指针

C 语言之指针

作者: CarsonChen | 来源:发表于2016-01-05 22:28 被阅读100次

一. 定义指针

指针定义的三要素:

1. 数据类型

2. 变量名

3. 初始值

Eg: int *a = NULL, char *b = NULL, float *c = NULL; 

注:NULL表示为空,恒为0

指针变量的大小仅跟操作系统的位数有关,32位操作系统占4个字节,64位操作系统占8个字节与long型变量类似.

int char float表示指针所指向的存储空间对应的数据类型,与指针本身无关

二. 指针的运算符

1. &为取地址的单目运算符

2. *与指针连用则为取该指针指向空间的内容

Eg: int number = 5; int *p = &number; *p -> number; (->表示等价)

3. %p为指针打印输出的格式控制符,将其打印显示为地址编号十六进制表现形式

4. &与*为互逆运算

三. 指针获取空间内容

int a = 6; short *p = &a;

如上操作可以通过编译,但指针p通过*取内容时,一次能取多少个字节的空间,取决于指针定义时的函数类型

如果指针的类型与其指向的空间类型不匹配,地址依然可以被保存,但是指针在取内容运算和算数运算时可能得不到正确结果.

四. 指针与数组

1. int array[10] = {0}; 

&array与array的地址相同,但其类型部同,&array的类型自增运算则加为整个数组长度,而array自增是一个元素的长度,并且二者均不能被修改.

&array 的实际数据类型是  

int (*array)[10] 为数组指针 为指向10个元素的指针

int *array[10] 为指针数组  为有10个元素的数组,每个元素都是指向整型的指针

2. sizeof()是取字节运算符,可以获取数据类型和变量的字节数

3. const关键字修饰一个变量为只读变量(不允许修改)const出现在指针类型的左侧表示指针指向的空间通过*运算符运算时不能修改,出现在指针类型的右侧表示指针变量不能重指向.同时出现,表示指针变量既不能重指向,其指向的空间也不能被修改

相关文章

  • iOS开发系列文章[转]

    C语言 iOS开发系列--C语言之基础知识 iOS开发系列--C语言之数组和字符串 iOS开发系列--C语言之指针...

  • C语言之指针

    1、指针是什么? 指针本质上是一个值为内存地址的变量 看以下例子 例子1 输出如下 分析:1、int * ptr。...

  • C语言之指针

    指针是一种数据类型 数据类型有哪些特性? 1、作为参数传值; 2、作为函数的返回值; 3、声明成变量; 为什么要声...

  • C 语言之指针

    一. 定义指针 指针定义的三要素: 1. 数据类型 2. 变量名 3. 初始值 Eg: int *a = NULL...

  • C语言之指针

    指针顾名思义就是一个指向某个位置的指针,例如钟表和车子的时速表,都有指针,指向的是一个时间或者速度,这里时间和速度...

  • 再学C语言之指针要点

    C之字符数组 C之指针引用字符串 C语言之数组指针 数组指针:首先它是一个指针,它指向数组指针数组:首先它是一个数...

  • C语言之指针[<重点>]

    指针:指针就是地址,地址就是指针。地址就是内存单元的编号。指针变量是存放地址的变量。指针和指针变量是不同的的概念。...

  • C 语言之函数指针

    一. 函数指针的定义 1. 函数的作用:完成某一特定功能的代码片段的封装. 2. 函数的定义: 返回值类型,函数名...

  • C语言之函数指针

    函数指针的定义 一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,与...

  • C语言之指针详解

    1 指针 1.1 简介 当初学C语言,指针是最头疼的地方,难以理解,不过时间长了就自然明白了通过指针,可以简化一些...

网友评论

    本文标题:C 语言之指针

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