news 2026/5/11 7:21:40

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/5/1 13:18:36

揭秘开源答题小程序:开启便捷考试与刷题新时代

引言在数字化浪潮席卷的当下&#xff0c;教育、招聘、培训等领域对于高效、便捷的考试与答题工具需求日益增长。今天&#xff0c;我们深入剖析一款开源的答题小程序&#xff0c;它不仅集成了考试、刷题、活动答题等多元功能&#xff0c;还凭借前后端完整源码、基于云开发的特性…

作者头像 李华
网站建设 2026/5/9 5:12:07

开关电源设计宝典:掌握核心技术从入门到精通

开关电源设计宝典&#xff1a;掌握核心技术从入门到精通 【免费下载链接】精通开关电源设计第2版资源下载 本仓库提供经典书籍《精通开关电源设计&#xff08;第2版&#xff09;》的资源下载。本书由浅入深地介绍了开关电源设计的各个方面&#xff0c;从基础的电感知识到复杂的…

作者头像 李华
网站建设 2026/5/11 6:01:48

WebRL-Llama-3.1-8B:浏览器自动化革命,让AI成为你的网页操作专家

在信息处理效率成为核心竞争力的今天&#xff0c;传统网页操作模式正面临效率瓶颈。手动点击、复制粘贴、跨页面数据整合等重复性工作&#xff0c;不仅消耗宝贵时间&#xff0c;更限制了信息价值的深度挖掘。智谱AI推出的WebRL-Llama-3.1-8B模型&#xff0c;通过自进化在线课程…

作者头像 李华
网站建设 2026/5/1 7:21:11

3、App Volumes:从组件到部署的全面解析

App Volumes:从组件到部署的全面解析 1. App Volumes简介与用户示例 在App Volumes的环境中,除了管理员账户外,还创建了多个Active Directory组来代表不同部门,每个组中包含若干用户账户。这些用户和组将在后续示例中用于演示用户分配。 2. App Volumes核心组件概述 App…

作者头像 李华
网站建设 2026/5/8 11:35:31

6、App Volumes软件安装与配置全流程指南

App Volumes软件安装与配置全流程指南 一、系统要求与软件下载 在开始安装App Volumes软件之前,需要确保终端用户的虚拟桌面以及捕获和预配机器上使用的App Volumes Agent实例运行的是Microsoft Windows 7或更高版本。 当满足所有先决条件和要求后,就可以下载App Volumes软…

作者头像 李华
网站建设 2026/4/24 12:38:16

13、虚拟化桌面环境中App Volumes的部署与应用

虚拟化桌面环境中App Volumes的部署与应用 在当今的数字化办公环境中,虚拟化桌面技术为企业提供了高效、灵活的办公解决方案。App Volumes作为一款强大的应用程序管理工具,可以与多种虚拟化桌面平台集成,实现应用程序的即时交付。本文将详细介绍如何在VMware Horizon View和…

作者头像 李华