C语言中指针操作主要有以下几种:
- 指针赋值(assignment):将一个地址赋给指针
- 求值(value-finding/dereferencing):通过运算符*求出指针所指向地址中存储的数值。
- 取指针地址:可以使用&获得指针变量本身地址。
- 将整数加给指针:使用+将整数加给指针,该整数会与指针所指类型占字节数相乘,并将乘积加到初始地址。
- 指针自增:对指向某数组元素的指针做自增运算,可以让指针指向数组下一个元素。
- 指针减去一个整数:类比上面的4。
- 指针自减:类比上面的5.
- 求差值:通常对指向一个数组两个不同元素的指针求差值,代表两个元素位置的差值。
示例:
#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语言各种陷阱, 指针详解,值得一看。
c语言的相关技术 c底层操作 指针 数组 函数 结构体
详细介绍,C语言中用指针处理链表。 以及对链表的建立和插入,删除等等操作。
C语言全套资料 C语言程序设计 C语言算法 C语言课件 C语言顺序程序设计,C语言数组,C语言循环控制,C语言预处理命令,C语言文件操作指针,C语言选择结构程序设计,C语言结构体与共用体,C语言文件操作,C语言函数
c语言指针常见指针及如何使用附带相关基本概念 C语言中的指针是一种特殊的数据类型,它存储了一个内存地址,可以用来访问和操作存储在该地址上的数据。指针在C语言中具有重要的应用,例如动态内存分配、函数参数传递...
哈工大 C语言 课件 这老师讲的很不错
浅议C语言中数组和指针的互操作浅议C语言中数组和指针的互操作浅议C语言中数组和指针的互操作浅议C语言中数组和指针的互操作
详细介绍了C语言指针的操作,让你得心应手的运用,利于C语言水平的进阶,适合有一定基础的学者,thanks
C语言指针操作探讨.pdf
C语言指针操作技巧探讨
C语言指针是程序设计中最重要的概念之一。它可以帮助你更好地管理内存,提高程序的效率,让你更加高效地编写代码。在这个问答集中,你将会学习到: 什么是指针? 如何声明和使用指针? 如何在函数中传递指针?...
1、指针的本质是一个与地址相关的复合类型,它的...指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。 3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
C语言指针操作技巧探讨,看了很容易懂,适合刚开始学习C的孩子们
基本解释 1、指针的本质是一个与地址相关的复合...指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。 3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
C语言指针学习及常用操作
C语言指针操作机制与常见问题分析.pdf
C语言中操作对象的指针法引用.pdf
5. 操作指针变量 三、指针的几个相关概念 1. const属性 2. void型指针 3. 空指针和野指针 四、指向不同数据类型的指针 1. 数值型指针 2. 字符串指针 3. 指针数组与数组指针 4. 二维数组和指针 5. 结构体...
c语言指针 指针就是内存中的一个地址编号,指针变量用于存储地址,指针变量也是一个变量。 内存中的每一个数据都会分配相应的地址 char 占内存一个字节,分配一个地址 int 占内存四个字节,分配四个地址 windows电脑...