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语言指针的知识点涵盖了指针声明、初始化、运算、与数组和函数的关系、字符串处理、内存管理、类型转换以及高级用法等。掌握这些知识点,有助于编写高效、复杂的C程序。在学习指针时,务必注意指针的类型...
### C语言中指针的知识点 #### 一、引言 C语言作为一种高效且功能强大的编程语言,在系统级编程和底层开发中具有不可替代的地位。其中,指针是C语言中一个非常重要的特性,它允许程序员直接操作内存,极大地提高了...
### C语言指针知识点解析 #### 一、理解指针的基本概念 在C语言中,指针是一个非常重要的概念,它允许程序员直接控制和管理内存。指针是一种变量,其值为另一个变量的地址(即内存位置)。通过使用指针,可以更...
C语言指针题库 本资源摘要信息是关于C语言指针的题库,涵盖了计算机等级二级考试中的相关内容。...本资源摘要信息提供了详细的C语言指针知识点和题库,旨在帮助考生和学习者提高C语言指针的知识和技能。
课程思政-C语言程序设计-指针基础
C语言指针知识点总结 本资源摘要信息主要介绍C语言指针的相关知识点,涵盖指针的基本概念、指针的操作、指针的应用场景等方面的内容。 一、指针的基本概念 * 指针是一种数据类型,用于存储变量的内存地址。 * ...
本资源主要涵盖了C语言指针的相关知识点,包括指针的基本概念、指针运算、指针与数组的关系、指针与字符串的关系等。通过本资源的学习,可以帮助读者更好地理解和掌握C语言指针的知识。 一、指针的基本概念 指针是...
C语言指针知识点总结 指针是C语言最独特和令人兴奋的特性之一,它增加了这门语言的能力和灵活性。指针对于初学者来说可能显得有点令人糊涂和不易理解,但一旦被掌握,它们将成为强有力的工具并变得易于使用。 概念...
### C语言指针知识点解析 #### 一、指针概念及基本原理 **标题与描述:** “c语言指针PPT课件.pptx”主要介绍了C语言中指针的基本概念及其应用。 **知识点概览:** 1. **指针的概念**:指针是一种特殊类型的变量...
【C语言指针课程PPT】讲解了C语言中核心的指针概念,它是C语言高效编程的关键。指针允许程序直接访问内存地址,增强了代码的灵活性和性能。以下是关于指针的详细知识点: 1. **变量与内存地址**: - 当在C语言中...
### 彻底搞定C语言指针(分类讲解) #### 知识点一:变量与内存空间 在深入了解C语言指针之前,首先需掌握变量在内存中的存储方式。内存被视为一系列连续的单元,每个单元拥有唯一的地址标识。当声明一个变量如`...
C语言指针实现字符串的反转 本文主要讨论了使用C语言指针实现字符串的反转的方法,并提供了两个不同的实现程序。 标题解释 "C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符...
### C语言指针知识点归纳 #### 一、引言 C语言中的指针是一个非常重要的概念,也是C语言区别于其他高级语言的一大特色。指针的掌握与否,往往是衡量一个程序员是否熟练掌握C语言的标准之一。本文将从指针的概念...
"精选C语言指针资料大全"集合了多种资源,旨在帮助初学者和深入研究者更好地理解和掌握这一核心概念。以下是对这些资源中可能包含的知识点的详细解释。 1. **C指针宝典**: - 指针基础:理解指针是什么,如何声明...
以下是对C语言指针相关知识点的详细总结。 首先,指针变量是一种特殊类型的变量,其存储的是内存地址。这些地址是针对基本数据类型、数组、函数等的数据单元的引用。通过指针变量,程序可以间接地访问和操作这些...
本篇文章将详细介绍C语言指针的基本概念、指针的声明和使用、数组指针的加减运算、指针之间的运算、指针之间的大小比较、数组作为参数传递给函数等知识点。 一、指针的基本概念 在C语言中,指针是一种数据类型,它...
详细文件见文件,以下是摘要知识点1:指针含义知识点2:指针定义(变量定义、数组定义、函数定义、指针定义)知识点3:指针的典型应用知识点4:指针4要素(指针的类型、指针指向的类型、指针的值、指针本身占用的...
"深入理解C语言指针的奥秘"这份资料旨在揭示指针的内在工作原理,帮助开发者掌握这一强大的工具。以下是对指针相关知识点的详细解释: 1. **指针的定义与类型**:指针是一种特殊的数据类型,它存储的是内存地址,即...
标题和描述部分提到的“C语言复习知识点.pdf”意味着接下来的内容将涵盖C语言编程的一些基础知识点。根据提供的部分内容,我们将对以下几个方面进行详细的阐述: 1. C语言基本语法:包括变量、数据类型、运算符、...