`

C语言中指针的操作

阅读更多

C语言中指针操作主要有以下几种:

  1. 指针赋值(assignment):将一个地址赋给指针
  2. 求值(value-finding/dereferencing):通过运算符*求出指针所指向地址中存储的数值。
  3. 取指针地址:可以使用&获得指针变量本身地址。
  4. 将整数加给指针:使用+将整数加给指针,该整数会与指针所指类型占字节数相乘,并将乘积加到初始地址。
  5. 指针自增:对指向某数组元素的指针做自增运算,可以让指针指向数组下一个元素。
  6. 指针减去一个整数:类比上面的4。
  7. 指针自减:类比上面的5.
  8. 求差值:通常对指向一个数组两个不同元素的指针求差值,代表两个元素位置的差值。

示例:

#include <stdio.h>
int main(void) 
{
	int urn[5] = {100,200,300,400,500};
	int *ptr1,*ptr2,*ptr3;

	ptr1 = urn;
	ptr2 = &urn[2];

	printf("pointer value, dereferenced pointer, pointer address:\n");
	printf("ptr1 = %u, *ptr1 = %d, &ptr1 = %u\n",ptr1,*ptr1,&ptr1);

	//指针加法
	ptr3 = ptr1 + 4;
	printf("adding an int to a pointer:\n");
	printf("ptr1 + 4 = %u,*(ptr1 + 4)=%d\n",ptr1+4,*(ptr1+4));

	//指针自增
	ptr1++;
	printf("values after ptr1++:\n");
	printf("ptr1=%u,*ptr1=%d,&ptr1=%u\n",ptr1,*ptr1,&ptr1);

	//指针自减
	ptr2--;
	printf("values after ptr2--:\n");
	printf("ptr2=%u,*ptr2=%d,&ptr2=%u\n",ptr2,*ptr2,&ptr2);

	--ptr1;
	++ptr2;

	printf("Pointers reset to original values:\n");
	printf("ptr1=%u,ptr2=%u\n",ptr1,ptr2);

	//指针相减
	printf("subtracting one pointer from another:\n");
	printf("ptr2=%u,ptr1=%u,ptr2-ptr1=%u\n",ptr2,ptr1,ptr2-ptr1);

	//一个指针减去一个整数
	printf("subtracting an int from a pointer:\n");
	printf("ptr3=%u,ptr3-2=%u\n",ptr3,ptr3-2);
}

 程序运行结果如下图:

分享到:
评论

相关推荐

    C语言中的指针学习 C语言中的指针学习

    因此,可以通过指针操作数组,如: ```c int arr[5] = {1, 2, 3, 4, 5}; int *ptr = arr; // 或 int *ptr = &arr[0]; // 访问数组元素 printf("%d\n", *(ptr + 2)); // 输出3 ``` ### 复杂的指针应用 对于更复杂...

    C语言中指针、数组和函数的综合应用与实例解析.pdf

    本文还对指针、数组和函数的综合应用进行了探讨和分析,包括指针在数组操作中的应用、函数在数组操作中的应用、指针在函数中的应用等。通过这些应用,可以更好地理解和掌握指针、数组和函数的概念和运算,提高程序...

    明解c语言,指针,各种操作,

    总之,《明解C语言》这本书以清晰易懂的方式讲解了C语言中的指针操作,无论你是初学者还是有一定经验的程序员,都能从中获益。通过阅读这本书,你将能更深入地理解C语言的精髓,更好地运用指针这一强大的工具。

    C语言中的指针

    指针在C语言中扮演着至关重要的角色,它允许我们直接访问内存地址,进行高效的数据操作和复杂的程序设计。掌握指针的用法对于提升C语言编程能力至关重要。 一、指针的定义与类型 在C语言中,指针是一个变量,它存储...

    c语言指针学习.pdf

    标题《C语言指针学习.pdf》表明该文档是关于C语言指针知识的学习资料,指针在C语言中是一个核心概念,用于存储变量的地址,能够直接访问计算机内存。文档内容涉及到C语言中指针的定义、指针与数组、指针与函数、多级...

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

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

    C语言-指针.pdf

    在C语言的学习过程中,指针是一个非常重要且复杂的话题,它允许程序直接访问内存地址,进行更为底层和高效的内存管理。本文将详细介绍C语言中指针的概念、使用方法,以及如何快速掌握这一重要知识点。 首先,我们...

    哈工大C语言课件 指针 文件操作

    6. 指针与结构体:利用指针操作结构体,实现复杂数据结构的构建和操作。 接下来,我们将讨论C语言中的文件操作,这是进行I/O(输入/输出)操作的基础。在哈工大的课件中,这部分内容可能包括: 1. 文件的基本概念...

    深入C语言文件指针操作:获取与应用当前文件位置

    本文通过深入分析C语言中文件指针位置的相关概念和操作,提供了一个全面的指南,帮助C语言开发者深入理解并有效应用文件指针位置管理,以编写出更加健壮和高效的文件操作代码。 在C语言中,文件操作是程序与磁盘数据...

    彻底搞定C语言指针————

    C语言指针是C语言中一个非常重要的概念,但它却是初学者最容易迷惑和混淆的部分。要真正搞定C语言指针,需要深入理解C语言变量的存储实质和内存空间的概念。 1. 变量的存储实质 内存空间可以看作是一个存放数据的...

    C语言中的指针与指针变量的正确理解

    然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识。所以我想通过一篇文章来尽可能的讲解指针,以对得起这个文章的标题吧。可以帮大家正确理解C语言中的常量...

    c语言指针学习笔记

    本文将介绍C语言指针的基本概念、定义、初始化、运算以及与一维数组的关系。 首先,我们要理解内存地址的概念。在程序运行时,操作系统为代码和数据分配内存空间,每一个内存单元都有一个唯一的编号,称为内存地址...

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

    "C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符串的反转操作。 描述解释 本文的描述部分解释了本文的主要内容,即提供了两个C语言指针实现字符串的反转程序,並且欢迎有...

    c语言课件指针

    本文将通过解析给定的“C语言指针课件”,详细介绍C语言中指针的基本概念及其应用。 #### 二、地址和指针的概念 在计算机中,每一个变量都有一个唯一的内存地址,这个地址用于标识变量在内存中的位置。指针是一种...

    浅析C语言中指针的使用.pdf

    指针操作涉及的两个关键运算符是“&”取地址运算符和“*”指针运算符。取地址运算符用于获取变量的内存地址,而指针运算符用于通过地址访问该内存位置存储的数据值。这两个运算符在指针的定义、初始化和使用过程中...

    C语言指针理解C语言指针理解C语言指针理解

    在实际编程中,我们可以通过指针进行动态内存分配、传递参数、操作数组等高级操作。正确理解和使用指针能够提高程序效率,但也需要谨慎处理,以避免指针错误导致的程序崩溃或内存泄漏。因此,深入学习和实践是掌握...

    C语言指针的详细资料(英文和中文)

    通过深入学习这些知识点,你将能够熟练地运用C语言指针进行高效的编程,解决复杂的算法问题,并构建自己的数据结构。提供的《C和指针》PDF文档将为你提供详细的解释和实例,加深对这些概念的理解。

    C语言指针课程PPT

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

Global site tag (gtag.js) - Google Analytics