指针实例

    int a[5] = {9,16,23,30,37};
    int *ptr = (int*)(&a +1);
    printf("%d,%d",*(a+1),*(ptr-1));

指针*(a+1)的值为:数组a的指针偏移指向a[0+1];

指针*(ptr-1)的值为:取地址数组a,(&a+1)在数组a的地址基础上偏移1个int 类型的大小,

{9,16,23,30,37}{9,16,23,30,37}

*(ptr-1)为37.

时间: 2025-01-11 09:08:58

指针实例的相关文章

c语言函数指针实例

如果使用typedef 是这样的 //可以把一个小写字母变成大写 //char (*pFun)(char); typedef char (*PTRFUN)(char); PTRFUN pFun; char glFun(char a){ return a & 223;} void print(int a,PTRFUN call){ cout<<call(a)<<endl;}void main() { pFun = glFun; print('a',pFun);} 如果不使用t

C语言指针实例练习

例1:输入a和b两个整数,按先后大小的顺序输出a和b的值. 1 #include <stdio.h> 2 int main() 3 { 4 int *p1,*p2,*p,a,b; 5 printf("请输入两个整数:"); 6 scanf("%d,%d",&a,&b);//输入数字时一定要使用英文状态下的逗号, 7 p1=&a; 8 p2=&b; 9 if(a<b) 10 { 11 p=p1; 12 p1=p2; 1

智能指针实例

摘要: 智能指针:通过C++模板技术实现的一个类模拟指针的行为(如->.*) 1. 内存泄漏(臭名昭著的Bug) (1)动态申请堆空间,用完后不归还(堆空间越来越少,的那个程序长时间运行,就会导致总堆空间内存没有了) (2)C++语言中没有垃圾回收的机制 (3)指针无法控制所指堆空间的生命周期(指针是变量,有生命周期,即一个局部指针指向了堆空间之后,当该指针的生命周期结束后,这段堆空间的生命周期并没有结束,这就发生了泄漏) 2. 当代C++软件平台中的智能指针 (1)指针生命周期结束时主动释放堆

数组与指针实例

1.#include <stdio.h> int main(){    int a[5] = {1, 2, 3, 4, 5};    int* p1 = (int*)(&a + 1);     int* p2 = (int*)((int)a + 1);    int* p3 = (int*)(a + 1);        printf("%d, %d, %d\n", p1[-1], p2[0], p3[1]);        return 0;}// A. 数组下标

指针数组和数组指针实例

1.#include <stdio.h> typedef int(AINT5)[5];typedef float(AFLOAT10)[10];typedef char(ACHAR9)[9]; int main(){    AINT5 a1;    float fArray[10];    AFLOAT10* pf = &fArray;    ACHAR9 cArray;    char(*pc)[9] = &cArray;    char(*pcw)[4] = cArray; 

IOS 阶段学习第八天笔记(指针)

                                                        IOS学习(C语言)知识点整理 一.指针 1)概念:存储变量的地址的一个变量. 2) 数据存储类型分析 1.text (代码段) :存储二进制的可执行代码 2.data(初始化的数据段) 存储初始化的全局变量以及初始化的static修饰的变量,分为只读数据段 (如:字符串常量,整型常量)及可读可写数据段,静态存储. 3.data(未初始化的数据段)存储未初始化的全局变量及未初始化的st

More Effective C++ 条款28 Smart Pointers(智能指针)

1. 智能指针(如标准库的auto_ptr,shared_ptr,weak_ptr,boost的scoped_ptr等)主要用于动态内存的管理,同时提供给用户与内置指针一样的使用方法,本条款主要涉及智能指针在构造与析构,复制和赋值,解引等方面的注意点,而非智能指针的实现细节. 2. 智能指针的构造,赋值,析构 智能指针的copy constructor,assignment operator,destructor对应于不同的观念而有不同的实现,主要有三种选择: 1).不允许对象的共享,在调用co

11-C语言指针

一. 指针前奏 1. 指针的重要性 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言. 2. 小需求 l void change(int  n)函数调用完毕后,改变实参的值 l 分析:修改实参的值->找到存储空间->地址 二. 指针变量的定义 1. 定义的格式 l 类名标识符 *指针变量名; l int *p; 2. 先定义后赋值 l 简单取值 int a = 10; int *p; p = &a; printf("%d&q

Swift 中的指针使用(转)

SWIFT 中  指针被映射为泛型 UnsafePointer<T> UnsafeMutablePointer<T> 表示一组连续数据指针的 UnsafeBufferPointer<T> 表示非完整结构的不透明指针 COpaquePointer 等等 UnsafePointer<T> 通过 memory 属性对其进行取值,如果这个指针是可变的 UnsafeMutablePointer<T> 类型,我们还可以通过 memory 对它进行赋值. fu