关于指针地址小结

简介:  #include int main(void) {         int *p1;         char *p2;         double *p3;         int a;         char b;         d...

 #include<stdio.h>

int main(void)

{

        int *p1;

        char *p2;

        double *p3;

        int a;

        char b;

        double c;

        p1 = &a;

        p2 = &b;

        p3 = &c;

        printf("int*所占的字节=%d\nchar*所占的字节=%d\ndouble*所占的字节=%d\n",sizeof(p1),sizeof(p2),sizeof(p3));

        printf("p1 = %p    p2 = %p     p3 = %p\n",p1,p2,p3);

        printf("p1++ = %p    p2++ =%p    p3++ = %p\n",++p1,++p2,++p3);

       

        return 0;

}

在内存中,指针变量所占的内存大小是一样的,都占4个字节,但是当它指向下一个单元时,所跳过的内存就和定义时用的是int还是char有关了,它会自动跳转该字符类型所占的字节大小。

目录
相关文章
|
22天前
|
存储 Java C++
C++ 引用和指针:内存地址、创建方法及应用解析
C++中的引用是现有变量的别名,创建时需用`&`运算符,如`string &meal = food;`。指针存储变量的内存地址,使用`*`创建,如`string* ptr = &food;`。引用必须初始化且不可为空,而指针可初始化为空。引用在函数参数传递和提高效率时有用,指针适用于动态内存分配和复杂数据结构操作。选择使用取决于具体需求。
44 9
|
4天前
|
C++ 存储 Java
C++ 引用和指针:内存地址、创建方法及应用解析
'markdown'C++ 中的引用是现有变量的别名,用 `&` 创建。例如:`string &meal = food;`。指针通过 `&` 获取变量内存地址,用 `*` 创建。指针变量存储地址,如 `string *ptr = &food;`。引用不可为空且不可变,指针可为空且可变,适用于动态内存和复杂数据结构。两者在函数参数传递和效率提升方面各有优势。 ```
|
15天前
|
存储 前端开发 程序员
一级指针和二级指针,取地址和不取地址调用函数区别及其应用
一级指针和二级指针,取地址和不取地址调用函数区别及其应用
|
22天前
|
编译器 C++
函数指针和回调函数对函数取地址和直接使用函数名的差距
函数指针和回调函数对函数取地址和直接使用函数名的差距
55 0
|
11月前
|
存储 编译器 C语言
初识C语言指针:内存,字节划分,地址存储,简单使用,指针大小
初识C语言指针:内存,字节划分,地址存储,简单使用,指针大小
|
11月前
|
存储 C语言
|
11月前
学C的第五天(初识指针,内存产生内存单元地址过程,指针函数介绍和其大小;结构体补充)-1
13*指针: 13.1 -- 内存: 内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。 【32位操作系统的内存由32根地址线产生的高低电位(1/0), 划分为2的32次方个地址(编号\指针),一个地址为一个字节, 等于8比特。】
|
C语言
c语言 指针的地址操作符 *
a 是某个变量。 &a 是变量 a 所在的地址。 int *p=a; / / p里面装着 a 的地址。 *p 里面装着 a 的数据。 *&a 里面装着 a 的数据。 即:*&a 相当于变量 a ,既然 *&a==a, 所以 *&a 与 a 的用法一摸一样。
41 0
指针一站式服务 (内含指针,地址,数组,解引用,sizeof,strlen的使用)
指针一站式服务 (内含指针,地址,数组,解引用,sizeof,strlen的使用)
46 0
一级指针传参 二级指针传参 函数指针---指向函数的指针,存放函数地址的指针 数组指针 指针数组 及相关例题
一级指针传参 二级指针传参 函数指针---指向函数的指针,存放函数地址的指针 数组指针 指针数组 及相关例题
63 0