news 2026/8/29 9:32:08

C语言--指针1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言--指针1

1.指针的理解

1.针可以理解为存储的数据的地址或内存单元

2.地址存放在指针变量中

int a=10; int*pa=&a;

这里pa为指针变量,存放了a的地址;

* 为解引用操作符,可以理解为指引pa找到a的地址,pa就=&a,而*pa=a;

注意:

• 32位平台下地址是32个bit位,指针变量⼤⼩是4个字节

• 64位平台下地址是64个bit位,指针变量⼤⼩是8个字节

• 注意指针变量的⼤⼩和类型是⽆关的,只要指针类型的变量,在相同的平台下,⼤⼩都是相同的。

3.

1. #include <stdio.h> int main() { int n = 0x11223344; int *pi = &n; *pi = 0; return 0; 2.#include <stdio.h> int main() { int n = 0x11223344; char *pc = (char *)&n; *pc = 0; return 0;

调试我们可以看到,代码1会将n的4个字节全部改为0,但是代码2只是将n的第⼀个字节改为0。

指针的类型决定了,对指针解引⽤的时候有多⼤的权限(⼀次能操作⼏个字节)。 ⽐如: char* 的指针解引⽤就只能访问⼀个字节,⽽ int* 的指针的解引⽤就能访问四个字节。

4. 指针+整数

我们可以看出, char* 类型的指针变量+1跳过1个字节, int* 类型的指针变量+1跳过了4个字节。

指针的类型决定了指针向前或者向后⾛⼀步有多⼤(距离)。

5.void*指针:可以接受任意类型地址,但不能直接进行+-整数或解引用运算;

⼀般 void* 类型的指针是使⽤在函数参数的部分,⽤来接收不同类型数据的地址,这样的设计可以 实现泛型编程的效果。使得⼀个函数来处理多种类型的数据。

6.

int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int *p = &arr[0]; int i = 0; int sz = sizeof(arr)/sizeof(arr[0]); for(i=0; i<sz; i++) { printf("%d ", *(p+i));//p+i 这⾥就是指针+整数 }

利用指针+-整数来当作数组的地址;

7.指针与指针·

#include <stdio.h> int my_strlen(const char* s) { const char* p = s; while (*p != '\0') p++; return p - s; } int main() { printf("%d\n", my_strlen("abc")); return 0; }

会打印出来3,s指向字符串首字符;

8.指针关系比较

#include <stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int *p = &arr[0]; int sz = sizeof(arr)/sizeof(arr[0]); while(p < arr + sz) //指针的⼤⼩⽐较 { printf("%d ", *p); p++; } return 0; }

看到的小笑话:电脑为什么会感冒?因为它的Windows开着,还没装杀毒软件。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 0:08:43

基于 TCP 的IOT物联网云端服务端和设备客户端通信架构设计与实现

一、项目背景与设计目标 在典型的IOT物联网应用中&#xff0c;嵌入式硬件设备&#xff08;如 ESP8266 / ESP32&#xff09;往往部署在内网或复杂网络环境中&#xff0c;而控制端&#xff08;PC / 手机 / 上位机&#xff09;需要通过云端服务器与这些设备进行远程通信。 IOT物联…

作者头像 李华
网站建设 2026/8/29 4:35:09

XYAdmin:基于Vue3与Ant Design的下一代中后台管理系统,重新定义开发效率

引言 在数字化转型的浪潮中&#xff0c;企业级中后台系统的开发效率与用户体验成为竞争关键。传统开发模式中&#xff0c;重复造轮子、权限管理复杂、跨端兼容性差等问题&#xff0c;让开发者苦不堪言。而今天&#xff0c;一款名为XYAdmin的开源中后台解决方案横空出世&#xf…

作者头像 李华
网站建设 2026/8/28 6:39:22

中英混合语音生成效果测试:EmotiVoice表现出色

中英混合语音生成效果测试&#xff1a;EmotiVoice表现出色 在数字内容爆炸式增长的今天&#xff0c;用户对语音交互质量的要求早已超越“能听清”这一基本门槛。无论是短视频中的双语旁白、游戏里情绪饱满的NPC对话&#xff0c;还是虚拟主播实时互动&#xff0c;人们期待的是有…

作者头像 李华
网站建设 2026/8/29 1:11:34

Strapi数据建模实战:从零构建灵活高效的内容管理系统

Strapi数据建模实战&#xff1a;从零构建灵活高效的内容管理系统 【免费下载链接】strapi &#x1f680; Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable and developer-first. 项目地址: https://gitcode.com/GitH…

作者头像 李华
网站建设 2026/8/28 9:40:56

Homepage媒体服务监控:打造智能媒体中心控制台

Homepage媒体服务监控&#xff1a;打造智能媒体中心控制台 【免费下载链接】homepage 一个高度可定制的主页&#xff08;或起始页/应用程序仪表板&#xff09;&#xff0c;集成了Docker和服务API。 项目地址: https://gitcode.com/GitHub_Trending/ho/homepage 在数字化…

作者头像 李华
网站建设 2026/8/29 3:29:45

15、远程应用与Citrix XenApp环境中App Volumes部署指南

远程应用与Citrix XenApp环境中App Volumes部署指南 1. 远程应用配置与测试 在完成一系列配置步骤后,我们可以得到一个有效的RemoteApp解决方案,该方案能够从AppStack向终端用户交付Office 2013。以下是测试该方案是否按预期工作的详细步骤: 1. 从桌面打开浏览器,在地址…

作者头像 李华