`

C语言指针 知识点

阅读更多

P { MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px }

内存 采用线性地址编码

 

变量的地址:系统为变量分配的内存单元地址(无符号整型数)

 

内存单元的首地址

 

存储内容:数据值

空间大小:数据类型

空间位置:地址

生存周期:存储类别

 

int a;  声明一个内存空间,大小为int类型的字节数

float b; 声明一个内存空间,大小为float类型的字节数

a = 3; 将3送到a所声明的内存空间去

b = 5; 将5送到b所声明的内存空间去

指针指向a的首地址

 

指针变量:存放变量的首地址

指针变量的类型:指向的内存中存放的数据的类型

指针变量的赋值:指针变量的值为地址,是个无符号整数

但不能直接将整型常量赋给指针变量

用变量的地址给指针变量赋值(求地址运算符&)

变量的类型必须与指针变量的类型相同

 

如果没有赋值,则指针变量的值是随机的(运行时风险)

赋空值NULL NULL字符的ASCII码是0

 

int *p;

p = NULL;

 

*p 标识指针变量p所指向的内存中的数据

p 指向内存空间首地址

 

int a=5, *p=&a;

&*p == &a

*&a == a

(*p)++ == a++

*(p++) == *p++

 

函数调用,将实参拷贝到形参声明的内存空间里

 

void swap(int *x, int *y){

        int *t = NULL;

        *t = *x; *x = *y; *y = *t

}

void main(){

        int a = 3, b = 5;

        swap(&a, &b);

        printf("%d %d\n", a, b);

 

指针与数组

数组:连续存放的若个个元素的集合

数组名就是指向第1个元素的指针(首地址)

int a[10], *p;

p=a 等价于p=&a[0];

 

数组元素的下标,统一按“基地址+位移” 的方式处理

位移量由元素类型决定(几个字节)

p+i, a+i,

*a == a[i] == *(p+i) == *(a+i)数组指针标识法

 

数组名a与指向数组首地址的指针变量p不同,a不是变量,不可能改变值(始终指向首地址)

 

 

数组指针的运算

 

1、赋值运算

 

2、加减运算

p +/- i 向后/向前移动下标

 

3、指针相减运算

p - a 求两地址间的间距(条件:类型相同,指向同一连续的存储区域)

4、移动指针

p++ p--

5、比较运算

p < q (依据:地址)

 

 

数组指针与函数参数

 

数组作为函数形参

 

指针与字符串

 

1、字符串的指针

 

C语言的字符串是以'\0'作结束符的字符序列

用字符数组存放字符串,(即含'\0'的字符数组可以看作字符串)

 

字符串指针就是字符数组的首地址

 

字符串指针变量

char *指针变量 

char *p, *q = "Language";

p = "This is a book."; //p指向字符数组的首地址,不存放字符串

 

char *p, c[10];

p = c;

 

常量在内存里没有存储空间

 

#include <stdio.h>

void main(){

        char *p, *q = "language";

        for (p = q; *p != '\0';)

                p++;

        for(p--; p>=q; p--)

                putchar(*p);

        putchar('\n');

}

 

 

字符数组与字符指针变量的比较

1、存储的内容不同

字符数组可以存字符串,存的是字符

字符指针变量存的是字符串在内存中的首地址

 

2、赋值方式不同

字符数组只能对各个元素分别赋值

字符指针变量只赋值一次,赋的是地址

char *p; p = "China";

 

3、当没有赋值时

字符数组名代表了一个确切的地址;

字符指针变量中的地址是随机的;

 

char *p = "abcd";

putchar(p[3]);

p[2] = 'x';

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    C语言指针知识点总结.pdf

    综上所述,C语言指针的知识点涵盖了指针声明、初始化、运算、与数组和函数的关系、字符串处理、内存管理、类型转换以及高级用法等。掌握这些知识点,有助于编写高效、复杂的C程序。在学习指针时,务必注意指针的类型...

    c语言中指针的知识点

    ### C语言中指针的知识点 #### 一、引言 C语言作为一种高效且功能强大的编程语言,在系统级编程和底层开发中具有不可替代的地位。其中,指针是C语言中一个非常重要的特性,它允许程序员直接操作内存,极大地提高了...

    c语言指针习题及答案

    ### C语言指针知识点解析 #### 一、理解指针的基本概念 在C语言中,指针是一个非常重要的概念,它允许程序员直接控制和管理内存。指针是一种变量,其值为另一个变量的地址(即内存位置)。通过使用指针,可以更...

    C语言指针题库

    C语言指针题库 本资源摘要信息是关于C语言指针的题库,涵盖了计算机等级二级考试中的相关内容。...本资源摘要信息提供了详细的C语言指针知识点和题库,旨在帮助考生和学习者提高C语言指针的知识和技能。

    课程思政-C语言程序设计-指针基础

    课程思政-C语言程序设计-指针基础

    动画教程C语言指针动画演示,指针原来这么简单(2021.01.22).pdf

    C语言指针知识点总结 本资源摘要信息主要介绍C语言指针的相关知识点,涵盖指针的基本概念、指针的操作、指针的应用场景等方面的内容。 一、指针的基本概念 * 指针是一种数据类型,用于存储变量的内存地址。 * ...

    C语言指针练习填空和阅读程序题

    本资源主要涵盖了C语言指针的相关知识点,包括指针的基本概念、指针运算、指针与数组的关系、指针与字符串的关系等。通过本资源的学习,可以帮助读者更好地理解和掌握C语言指针的知识。 一、指针的基本概念 指针是...

    C语言课件:第十章 指针(Pointers).ppt

    C语言指针知识点总结 指针是C语言最独特和令人兴奋的特性之一,它增加了这门语言的能力和灵活性。指针对于初学者来说可能显得有点令人糊涂和不易理解,但一旦被掌握,它们将成为强有力的工具并变得易于使用。 概念...

    c语言指针PPT课件.pptx

    ### C语言指针知识点解析 #### 一、指针概念及基本原理 **标题与描述:** “c语言指针PPT课件.pptx”主要介绍了C语言中指针的基本概念及其应用。 **知识点概览:** 1. **指针的概念**:指针是一种特殊类型的变量...

    C语言指针课程PPT

    【C语言指针课程PPT】讲解了C语言中核心的指针概念,它是C语言高效编程的关键。指针允许程序直接访问内存地址,增强了代码的灵活性和性能。以下是关于指针的详细知识点: 1. **变量与内存地址**: - 当在C语言中...

    彻底搞定C语言指针(分类讲解)

    ### 彻底搞定C语言指针(分类讲解) #### 知识点一:变量与内存空间 在深入了解C语言指针之前,首先需掌握变量在内存中的存储方式。内存被视为一系列连续的单元,每个单元拥有唯一的地址标识。当声明一个变量如`...

    C语言指针实现字符串的反转

    C语言指针实现字符串的反转 本文主要讨论了使用C语言指针实现字符串的反转的方法,并提供了两个不同的实现程序。 标题解释 "C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符...

    c语言指针归纳

    ### C语言指针知识点归纳 #### 一、引言 C语言中的指针是一个非常重要的概念,也是C语言区别于其他高级语言的一大特色。指针的掌握与否,往往是衡量一个程序员是否熟练掌握C语言的标准之一。本文将从指针的概念...

    精选C语言指针资料大全

    "精选C语言指针资料大全"集合了多种资源,旨在帮助初学者和深入研究者更好地理解和掌握这一核心概念。以下是对这些资源中可能包含的知识点的详细解释。 1. **C指针宝典**: - 指针基础:理解指针是什么,如何声明...

    对C语言指针知识的总结

    以下是对C语言指针相关知识点的详细总结。 首先,指针变量是一种特殊类型的变量,其存储的是内存地址。这些地址是针对基本数据类型、数组、函数等的数据单元的引用。通过指针变量,程序可以间接地访问和操作这些...

    c语言指针详解,10分钟学会指针用法

    本篇文章将详细介绍C语言指针的基本概念、指针的声明和使用、数组指针的加减运算、指针之间的运算、指针之间的大小比较、数组作为参数传递给函数等知识点。 一、指针的基本概念 在C语言中,指针是一种数据类型,它...

    C语言指针的知识点,代码可直接运行

    详细文件见文件,以下是摘要知识点1:指针含义知识点2:指针定义(变量定义、数组定义、函数定义、指针定义)知识点3:指针的典型应用知识点4:指针4要素(指针的类型、指针指向的类型、指针的值、指针本身占用的...

    深入理解C语言指针的奥秘

    "深入理解C语言指针的奥秘"这份资料旨在揭示指针的内在工作原理,帮助开发者掌握这一强大的工具。以下是对指针相关知识点的详细解释: 1. **指针的定义与类型**:指针是一种特殊的数据类型,它存储的是内存地址,即...

    C语言复习知识点.pdf

    标题和描述部分提到的“C语言复习知识点.pdf”意味着接下来的内容将涵盖C语言编程的一些基础知识点。根据提供的部分内容,我们将对以下几个方面进行详细的阐述: 1. C语言基本语法:包括变量、数据类型、运算符、...

Global site tag (gtag.js) - Google Analytics