当前位置: 首页 > news >正文

(C语言)指针的进阶

1.指针就是个变量,用来存放地址,地址唯一标识一块内存空间。
2.指针的大小是固定的4/8个字节(32位平台/64位平台)。
3.指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。
4.指针的运算。

一、关于两个数组和指针是否相等的问题;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>int main()
{//初始化变量值;//初始化指针;const char* p1 = "abcdef";const char* p2 = "abcdef";//初始化数组;char arr1[] = "abcdef";char arr2[] = "abcdef";//判断比较指针是否相等结果结果;if (p1 == p2){//打印结果;printf("p1 == p2\n");}else{//打印结果;printf("p1 != p2\n");}//结果为:p1 == p2;//原因:因为*p1和*p2在存储时存储的是字符串首字母的地址,p1和p2的首字母都是a,a的地址是一样的;//所以说p1 == p2;//判断数组是否相等结果;if (arr1 == arr2){//打印结果;printf("arr1 == arr2\n");}else{//打印结果;printf("arr1 != arr2\n");}//结果为: arr1 != arr2;//原因:因为arr1和arr2属于两个不同的数组,会在内存中开辟不同的空间;//所以这两个字符串数组即使内容一样,但是也不会相等;return 0;
}

二、指针数组;

指针数组是数组,是用来存放指针的数组;

int arr[10] //整型数组;

char arr[5] //字符数组;

int* arr[10] //存放整型指针的数组;

char* arr[5] //存放字符指针的数组;

三、用一维数组实现二维数组;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>int main()
{//初始化变量值;int arr1[] = { 1, 2, 3, 4, 5 };int arr2[] = { 2, 3, 4, 5, 6 };int arr3[] = { 3, 4, 5, 6, 7 };//初始化指针变量值;int* parr[] = { arr1, arr2, arr3 };//打印数组;int i = 0;int j = 0;//循环打印;for (i = 0; i < 3; i++){//内层循环;for (j = 0; j < 5; j++){//打印结果;// printf("%d", *(parr[i] + j));//*(p + i) ---> p[i]printf("%d", parr[i][j]);}//每个数组循环完成后换行;printf("\n");}return 0;
}

四、数组指针;

数组名通常表示的都是数组首元素的地址
但是有2个例外:
1.s1zeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小单位是字节
2.&数组名,这里的数组名表示的依然是整个数组,所以&数组名取出的是整个数组的地址 

http://www.lryc.cn/news/274515.html

相关文章:

  • 【网络面试(5)】收发数据及断开服务器(四次挥手)
  • 【Maven】下载及配置
  • 【方法】PPT设置密码后如何修改?
  • 第34期 | GPTSecurity周报
  • 2023新版edge浏览器页面加载不出来的解决办法
  • 算法基础之二分与前缀和 day 6
  • github短视频去除水印项目Douyin_TikTok_Download_API介绍
  • FindMy技术用于键盘
  • 认识jmeter接口测试工具!
  • 强大的按钮类CButtonST
  • 学习ing
  • linux下数据库定时备份
  • Qt/QML编程学习之心得:QSocketNotifier(二十一)
  • 【linux】lsblk和df -h显示的磁盘信息不同
  • 如何开发属于自己的小程序?
  • 湖仓架构的演进
  • 【头歌实训】Spark MLlib ( Python 版 )
  • Java基础进阶(学习笔记)
  • uView NoticeBar 滚动通知
  • 外包干了3个多月,技术退步明显。。。。。
  • JSON的一些资源
  • 最优化理论期末复习笔记 Part 1
  • 鸿蒙应用中的通知
  • 如何停止一个运行中的Docker容器
  • Linux第19步_安装“Ubutun交叉编译工具链”
  • 【论文阅读笔记】 Representation Learning with Contrastive Predictive Coding
  • CNN——LeNet
  • 分类模型评估方法
  • RabbitMQ高级
  • SonarQube 漏洞扫描