c指针(二)
创始人
2025-05-29 06:43:17

1.指针和指针变量的关系

  • 指针 就是内存的地址编号。

  • 指针变量:本质是变量 只是该变量 保存的是 内存的地址编号。(不是普通的数值)

2.指针变量的定义

1、定义步骤(定义的时候)

int *p;
*修饰指针变量p。 保存谁的地址 你先定义谁。 从上往下整体替换。

案例1:

1 定义一个指针变量p 保存 int num的地址; int *p;
2 定义一个指针变量p 保存数组int arr[5]首地址; int (*p)[5]
3 定义一个指针变量p 保存函数的入口地址 int fun(int,int); int (*p)(int,int);
4 定义一个指针变量p 保存结构体变量的地址 struct stu lucy; struct stu *p;
5 定义一个指针变量p 保存指针变量int *p的地址 int **p

3.指针变量的详解

1、在32位平台任何类型的指针都是4字节
2、在64位平台任何类型的指针变量 都是8字
#include int main()
{printf("%ld\n",sizeof(char *));printf("%ld\n",sizeof(short *));printf("%ld\n",sizeof(int  *));printf("%ld\n",sizeof(float *));printf("%ld\n",sizeof(double *));return 0;
}

4.指针变量和普通变量建立关系

#include int main()
{int num = 10;//建立关系int *p = #//%p 打印地址编号printf(" p = %p\n",p);printf(" num = %p\n",&num);printf(" p = %d\n",*p);printf(" p = %d\n",num);return 0;
}

注意:

5.指针变量的初始化

指针变量 在操作之前 必须指向合法的地址空间。

1、指针变量 如果不初始化 立即操作 会出现段错误。
2、指针变量 如果没有指向合法的空间 建议初始化为NULL
3、将指针变量 初始化为 合法的地址(变量的地址、动态申请的地址、 函数入口地地址)
 int *p = NULL;//NULL是赋值给p int *p; p = NULL;1 int num = 10;
2 int *p = &num

6.指针变量指向的类型(重要)

int *p; p指向的类型为int

指针变量的指向类型 决定了取值宽度

int num = 0x01020304;
int *p = #
为什么 *p == num == 0x01020304?
#include void test()
{int num = 0x12345678;int *p1 = #printf("%#x\n",*p1);short *p2 = (short *)#printf("%#x\n",*p2);char *p3 = (char *)#printf("%#x\n",*p3);}    int main()
{test();return 0;
}

7.指针变量的指向类型 决定了+1跨度 (重要)

void test01()
{int *p1 = NULL;printf("p1 = %u\n",p1);printf("p1 = %u\n",p1+1);short *p2 = NULL;printf("p2 = %u\n",p2);printf("p2 = %u\n",p2+1);char *p3 = NULL;printf("p3 = %u\n",p3);printf("p3 = %u\n",p3+1);}int main()
{test01();return 0;
}
void test02()
{int num = 0x01020304;short *p1 = (short *)#printf("%#x\n",*(p1+1));char *p2 = (char *)#printf("%#x\n",*(p2+1));    }int main()
{test02();return 0;
}

8.字符串与指针

1、字符数组

1 char str1[128]="hello world";

str1是数组 开辟128字节 存放字符串"hello world

1 sizeof(str1) == 128字节

2、字符串指针变量

char *str2="hello world";
str2是指针变量 在栈区/全局区 保存的是字符串常量"hello world"的首元素地址,而”hello world“在文字常量区
void test03()
{char *str = "hello world";printf("%s\n",str);  //读printf("%c\n",str[6]);  //读str[6] = 'w';  //不允许给 文字常量区赋值
}int main()
{test03();return 0;
}

9.指针数组

1.指针数组:本质是数组 只是数组的每个元素为 指针。32位平台:

1 char *arr1[4];
2 short *arr2[4];
3 int *arr3[4];
4 sizeof(arr1) ==16B
5 sizeof(arr2) ==16B
6 sizeof(arr3) ==16B
void test04()
{int num1 = 10;int num2 = 20;int num3 = 30;int num4 = 40;int *arr[4] = {&num1,&num2,&num3,&num4};int n = sizeof(arr)/sizeof(arr[0]);int i = 0;for(i=0;i<4;i++){printf("%d ",*arr[i]);printf("\n");}       }int main()
{test04();return 0;
}

相关内容

热门资讯

【洛谷刷题】蓝桥杯专题突破-深... 目录 写在前面: 题目:P1149 [NOIP2008 提高组] 火柴棒...
Gocator 3D线扫相机专... 文章目录3D相机标定用物品规范GOCATOR 2880Gocator 电源/LAN连接器Gocato...
Activity工作流(三):... 3. Service服务 所有的Service都通过流程引擎获得。 3.1 Repositor...
黄鹤楼在哪个省份哪个城市(黄鹤... 今天给各位分享黄鹤楼在哪个省份哪个城市的知识,其中也会对黄鹤楼在哪个省是在哪个地方进行解释,如果能碰...
厦门信达广汽丰田凯美瑞最新报价... 今天给各位分享厦门信达广汽丰田凯美瑞最新报价可试乘试驾的知识,其中也会对厦门信达汽车有哪些品牌进行解...
网络用语切糕是什么意思(网络用... 本篇文章极速百科给大家谈谈网络用语切糕是什么意思,以及网络用语切糕是什么意思啊对应的知识点,希望对各...
产品导购:同为554拖拉机,到... 本篇文章极速百科给大家谈谈产品导购:同为554拖拉机,到底谁更胜一筹?,以及504拖拉机和554拖拉...
【设计相关】UML类图和时序图... 文章目录一、 什么是UMLUML的定义UML的应用场景类图(Class Diagram...
[图神经网络]图特征工程 一、图的特征         图点本身就具备的特征称为属性特征(如:连接...
#科研筑基# 吴恩达深度学习 ... 为什么深度学习会兴起机器学习算法在处理少量数据时效率很高,但数据规模巨大时࿰...
青岛事故车交易网(青岛哪里有事... 本篇文章极速百科给大家谈谈青岛事故车交易网,以及青岛哪里有事故车批发对应的知识点,希望对各位有所帮助...
适合家庭用车的5款车,空间大乘... 今天给各位分享适合家庭用车的5款车,空间大乘坐感舒适,省油耐用又...的知识,其中也会对适合家用的车...
丰田卡罗拉油耗多少钱一公里(卡... 今天给各位分享丰田卡罗拉油耗多少钱一公里的知识,其中也会对卡罗拉16自动挡油耗进行解释,如果能碰巧解...
为众人抱薪者原文出自何处(为众... 本篇文章极速百科给大家谈谈为众人抱薪者原文出自何处,以及为众人抱薪者是谁的话对应的知识点,希望对各位...
人机对话比拼,Chat GPT... 目录 文心一言初体验 一、登录体验难易对比  二、测试对比--哲学类 第一个问题:《三...
强化学习笔记-04 动态规划D... 本文是博主对《Reinforcement Learning- An introduction》的阅读...
吉林华泰车险地址查询:理赔网点... 本篇文章极速百科给大家谈谈吉林华泰车险地址查询:理赔网点、营业厅、门店、定损...,以及华泰财产保险...
中国的五岳的特点各是什么(中国... 本篇文章极速百科给大家谈谈中国的五岳的特点各是什么,以及中国的五岳都是怎么样的对应的知识点,希望对各...
英菲尼迪fx35油耗多少钱(英... 本篇文章极速百科给大家谈谈英菲尼迪fx35油耗多少钱,以及英菲尼迪fx350油耗多少对应的知识点,希...
嫡孙是什么孙子(嫡孙指的是什么... 本篇文章极速百科给大家谈谈嫡孙是什么孙子,以及嫡孙指的是什么意思对应的知识点,希望对各位有所帮助,不...
【Linux】网络基础(2) 前言         本篇笔记记录我在Linux系统下学习网络基础部分知识,从关于网络...
计算机网络(第九弹) --- ...   传输控制协议 TCP 在整个计算机网络中占有很高的地位, 它会控制着网络上数据的传输过程, 当然...
Java二叉树的前中后序遍历 Java二叉树的前中后序遍历1.前序遍历1.1前序遍历概念1.2前序遍历习题2.中序遍历2.1中序遍...
电动汽车十大名牌排名及价格,纯... 今天给各位分享电动汽车十大名牌排名及价格,纯电动汽车排名及价格...的知识,其中也会对电动汽车十大名...
长安奔奔mini保养(长安奔奔... 本篇文章极速百科给大家谈谈长安奔奔mini保养,以及长安奔奔mini保养手册对应的知识点,希望对各位...
Python-06:异常、模块... 文章目录一、异常1.1 异常的概念1.2 捕获异常的语法1.3 代码演示1.4 异常的传递性二、模块...
满州是哪里(日本口中的满洲是哪... 今天给各位分享满州是哪里的知识,其中也会对日本口中的满洲是哪里进行解释,如果能碰巧解决你现在面临的问...
义乌交通违章查询,浙江义乌交通... 今天给各位分享义乌交通违章查询,浙江义乌交通违章查询的知识,其中也会对义乌违章查询入口进行解释,如果...
WEB安全 DIV CSS基础 1.DIV和CSS样式             层叠样式表(英文全称:Cascadin...
灵感来自游艇?聊天津一汽骏派C... 今天给各位分享灵感来自游艇?聊天津一汽骏派CX65设计的知识,其中也会对一汽骏派suv进行解释,如果...