C程序设计——基本变量类型(指针1)

注释

我们先介绍一下程序设计语言中,很重要的一个部分——注释。注释通常用来说明源码的功能、作者、版权等。目前常见的C编译器,都支持两种注释,多行注释和单行注释。

多行注释

多行注释是 /*  */ 中间的内容,比如下面这样:

/*  这就是多行注释,编译时注释的内容会被编译器忽略
*/

有时注释里面会多加几个 * ,大概是为了看着明显把。

/***************************有时,注释标志会写成这样其实我也不知道目的是什么,大概就是为了好看把。
***************************/

单行注释

比较老的C编译器,比如我当年上学时用的 Tubro C,就不支持,但是我接触的编译器,好像都支持。

单行注释是从两个连续的除号开始,到改行结束,像下面这样:

int main(void)// 从左面两个除号开始,到这一行结束,都是注释。
{// 单行注释也可以在这里printf("祖国您好!\r\nhello World! \r\n");  // 单行注释还可以在这里
}

其他基本变量类型的指针

我们到目前为止,所有学过的变量,都有对应的指针:

int main(void)
{char *pcChar ; // 指向字符型变量的指针short int *psShort ; // 指向短整形变量的指针int *piInt ; // 指向整形变量的指针long int *plLong ; // 指向长正向变量的指针long long *pllLongLong; // 指向超长整型变量的指针unsigned char *pcChar ; // 指向无符号字符型变量的指针unsigned short int *psShort ; // 指向无符号短整型变量的指针unsigned int *piInt ; // 指向无符号整形变量的指针unsigned long int *plLong ; // 指向无符号长整型变量的指针unsigned long long *pllLongLong; // 指向无符号超长整形变量的指针float *pFloat ; // 指向单精度浮点数的指针double *pDouble ; // 指向双精度浮点数的指针
}

关于指针变量的几个基本概念

指针变量的值,和指针指向的值

先看如下代码:

int main(void)
{int iInt ;  // 定义整形变量int *piInt ; // 定义指向整形的指针变量piInt = &iInt ;// 整形变量取地址,赋值给整形指针变量*piInt = 10 ;printf("piInt %d\r\n", piInt); // 打印指针变量的值printf("*piInt %d\r\n", *piInt); // 打印指针变量指向的值
}

执行结果如下:

上面的源码,主要为了区分下面的两项:

    int *piInt ; // 定义指向整形的指针变量*piInt = 10 ; // 改变指针指向的值

定义指针时,变量名左边加“*”;使用指针时,变量名左边也要加“*”

指针变量加1

先看下面这段代码:

int main(void)
{char *pcChar = 0; // 指向字符型变量的指针int *piInt = 0 ; // 指向整形变量的指针long long *pllLongLong = 0 ; // 指向超长整型变量的指针printf("pcChar         %d\r\n", pcChar);printf("(pcChar + 1)   %d\r\n\r\n", (pcChar + 1));printf("piInt         %d\r\n", piInt);printf("(piInt + 1)   %d\r\n\r\n", (piInt + 1));printf("pllLongLong         %d\r\n", pllLongLong);printf("(pllLongLong + 1)   %d\r\n\r\n", (pllLongLong + 1));
}

运行结果如下:

我们会发现,不同类型的指针,加1后的值不一样:字符型指针加了 1,整形指针加了4,超长整形指针加了8 。再结合我们前面学到的知识,字符型变量占1个字节,整形变量占4个字节,超长整形占8个字节。我们就释然了,就可以得出一个结论:

如果指针指向的类型长度是 n字节,那么指针变量加1后,指针变量的值会增加 n。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401263.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.微服务发展阶段

单体应用阶段 简介 系统业务量很小的时候我们把所有的代码都放在一个项目中,然后将这个项目部署在一台服务器上,整个项目所有的服务都由这台服务器去提供 优点 1.展现层、控制层、持久层全都在一个应用里面,调用方便、快速,单个请…

域名的常见解析记录类型有哪些,你了解多少?

域名的常见解析记录类型有哪些?域名解析记录用于存储有关域名及其关联 IP 地址的信息。一般,常见的记录有多种,每种类型都有其特定用途。在本文中,我们将探讨常见的几种域名解析记录类型,方便您了解。 A 记录:将域名映…

Python酷库之旅-第三方库Pandas(081)

目录 一、用法精讲 336、pandas.Series.str.rpartition方法 336-1、语法 336-2、参数 336-3、功能 336-4、返回值 336-5、说明 336-6、用法 336-6-1、数据准备 336-6-2、代码示例 336-6-3、结果输出 337、pandas.Series.str.slice方法 337-1、语法 337-2、参数 …

一文掌握SOP搭建步骤方法

如果你正在阅读这篇文章,那么你很可能在寻找如何为你的企业编写标准操作程序(SOP)的指导,以确保更好的流程被传达给你的团队并且得到遵循。 为什么SOPs很重要 SOPs必须清晰地传达你的业务流程,以标准化操作并确保盈利性…

this内存原理,成员变量和局部变量的区别

this的作用:区分局部变量和成员变量 this的本质:所在方法调用者的地址值 内存分布,this会保存地址 this.name name 等号的右边触发就近原则接收形参 把接收到的形参赋值给成员变量的name 成员变量,类方法外的变量&#xff0c…

使用克隆软件克隆Windows 10 硬盘

为什么 Windows 用户要克隆硬盘驱动器 您打算将旧硬盘升级为新硬盘吗?是否可以将操作系统迁移到 SSD?如何制作硬盘的相同副本?如何安全地升级操作系统而不会出现可启动故障问题?是否有任何安全便捷的方法可用于传输数据并升级到更…

SQL— DDL语句学习【后端 10】

SQL— DDL语句学习 在数据管理的广阔领域中,SQL(Structured Query Language)作为操作关系型数据库的编程语言,扮演着举足轻重的角色。它不仅定义了操作所有关系型数据库的统一标准,还为我们提供了强大的工具来管理、查…

机器人阻抗控制之设计方法

机器人阻抗控制的设计方法主要围绕调整机器人与环境之间的动态关系,使其等效为由弹簧-阻尼-质量组成的二阶系统。这一控制策略不是直接控制机器人的运动或其与外界的接触力,而是控制这二者之间的动态关系。以下是机器人阻抗控制设计方法的详细阐述&#…

Docker最佳实践进阶(二):Docker Compose容器编排

大家好,在上篇文章中博主演示了Dockerfile常用的命令,以及如何利用Dockerfile构建镜像,生成容器服务,但是在实际应用环境中,特别是在微服务架构中,一个应用系统可能包含多个微服务,每个微服务可…

【vue】h 函数的使用

文章目录 1. 引言2. h 函数3. h 函数的使用3.1 v-if3.2 v-for3.3 v-on3.4 组件3.5 渲染插槽 4. h函数的使用场景参考链接 1. 引言 在绝大多数情况下,Vue 推荐使用模板语法来创建应用。然而在某些使用场景下,我们真的需要用到 JavaScript 完全的编程能力。…

Java开发代码规范文档

优质博文:IT-BLOG-CN 一、命令规范 包命名规范 包Package的作用是将功能相似或相关的类或者接口进行分组管理,便于类的定位和查找,同时也可以使用包来避免类名的冲突和访问控制,使代码更容易维护。通常,包命使用小写…

安卓中Room持久化库的使用

在Android开发中,Room是Google提供的一个持久化库,旨在为应用提供SQLite的抽象层,以简化数据库的访问和操作。相比直接使用SQLite,Room提供更清晰、更简洁的数据库访问机制。 1. Room的基础知识 1.1 引入Room依赖 首先&#xff…

GB/T 38082-2019 生物降解塑料购物袋检测

生物降解塑料购物袋是指以生物降解树脂为主要原料制得的,具有提携结构的,在销售、服务等场所用于盛装及携提商品的袋制品。 GB/T 38082-2019 生物降解塑料购物袋检测项目: 检测项目 测试标准 尺寸偏差 GB/T 38082 感官 GB/T 38082 提掉…

谷粒商城实战笔记-190-192商城业务-检索服务-面包屑导航

文章目录 一,什么是面包屑导航1,京东商城的面包屑2,面包屑是怎么产生的 二,面包屑导航的后台实现 这三节的主要内容是开发面包屑的前后端功能。 190-商城业务-检索服务-面包屑导航191-商城业务-检索服务-条件删除与URL编码问题192…

阿一网络安全实战演练之利用 REST URL 中的服务器端参数污染

所需知识 要解决这个实验室问题,您需要了解以下内容: 如何确定用户输入是否包含在服务器端的 URL 路径或查询字符串中。如何使用路径遍历序列尝试更改服务器端请求。如何查找 API 文档。 这些内容在我们的 API 测试学院主题中有涵盖。 进入实验室 研…

【Docker安装】Ubuntu系统下离线部署Docker环境教程

【Docker安装】Ubuntu系统下离线部署Docker环境教程 前言一、本次实践介绍1.1 本次实践规划1.2 本次实践简介二、检查本地环境2.1 检查操作系统版本2.2 检查内核版本2.3 更新软件源三、卸载Docker四、下载安装包4.1 创建目录4.2 官网下载五、部署Docker环境5.1 解压安装包5.2 复…

Web Image scr图片从后端API获取基本实现

因系统开发中需求,会有页面显示图片直接从后端获取后显示,代码如下: 后端: /*** 获取图片流* param response* param fileName*/RequestMapping(value"getImgStream",method RequestMethod.GET)public void getImgStr…

Yearning开源SQL审核平台本地Linux系统部署与远程登录语句审核

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 本文主要介绍在 Linux 系统简单部署 Yearning 并结合 cpolar 内网穿透工具实现远程访问,破除…

Java基础入门15:算法、正则表达式、异常

算法(选择排序、冒泡排序、二分查找) 选择排序 每轮选择当前位置,开始找出后面的较小值与该位置交换。 选择排序的关键: 确定总共需要选择几轮:数组的长度-1。 控制每轮从以前位置为基准,与后面元素选择…

Typescript在AI产品中应用越来越广泛

AI产品中的应用 TypeScript 在 AI 产品中的应用逐渐增多,主要得益于其提供的类型安全、面向对象编程和模块化等特性,这些特性使得开发者能够构建可维护、可扩展和高性能的应用程序。 首先,TypeScript 作为 JavaScript 的超集,通…