C语言—指针
碎碎念:做指针题的时候我仿佛回到了原点,总觉得目的是为了把框架搭建起来,我胡说的哈31
1.利用指针变量将一个数组中的数据反向输出。

/*1.利用指针变量将一个数组中的数据反向输出。*/#include <stdio.h>
#include <time.h>
#include <stdlib.h>int main(void)
{int arr[10] = {0};int n = sizeof(arr) / sizeof(arr[0]);srand(time(NULL));printf("原始数组为: ");int i = 0;for(;i < n;i++){arr[i] = rand() % 100;printf("%5d",arr[i]);}printf("\n");int *p = arr; //指针指向数组元素printf("反响输出数组元素:");for(int i = n - 1;i >= 0;i--){printf("%5d", *(p + i));}printf("\n");return 0;}
2.利用指针变量计算下标为奇数的数组的和;

/*2.利用指针变量计算下标为奇数的数组的和;*/#include <stdio.h>int main(void)
{int arr[] = {1,2,3,4,5,6,7,8,9};int n = sizeof (arr) / sizeof (arr[0]);printf("数组元素为:");int i = 0,j = 0;for(;i < n;i++){printf("%3d",arr[i]); // 打印数组元素,%3d指定宽度为3,右对齐}printf("\n");printf("数组下标为:");for(int i =0;i < n;i++){printf("%3d",i); //打印数组下标,指定宽度为3,右对齐}printf("\n");int sum = 0;int *p; //声明指针变量pp = arr; //将数组首地址渎职给指针变量for(int i =0;i < n;i++){if(i % 2 != 0){sum += *(p + i); //如果下标i为奇数,累加指针p后移i个位置的元素值}}printf("下标为奇数的数组元素之和为: %d\n",sum);return 0;}
3.确认整型,字符型,浮点型指针变量的大小;
are you sure?在Linux中Ubuntu中gcc编译器中指针变量类型大小都是8个字节

然后我又在devc++中编译(?????)

因此我得出了结论(我也不知道对不对),32位都是4个字节指针类型,使用的是64位系统且编译器支持64位指针,所有类型的指针大小都是8字节指针类型(?不是很懂哈哈哈)
4.利用指针变量输出字符数组中的所有字符。

/*4.利用指针变量输出字符数组中的所有字符。*/#include <stdio.h>int main(void)
{char str[] = "Hello,World";int n = sizeof(str) / sizeof(str[0]);char *ptr = str; //定义一个指向字符的指针printf("输出字符数组中的字符串:%s\n",str); //输出字符串用%sint i = 0;printf("利用指针变量遍历字符数组输出字符:");for(;i < n;i++){printf("%c",*ptr); //注意这里使用%c是因为str是一个字符数组而非一个字符串ptr++; //移动指针到下一个字符}printf("\n");return 0;}
这个是让用户自己输入字符串的(此时要注意fgets函数自动添加换行符,所以不需要咱们额外添加)
/*4.利用指针变量输出字符数组中的所有字符。*/#include <stdio.h>int main(void)
{char str[32] = {0};printf("请输入一个字符串:");fgets(str,sizeof(str),stdin);int n = sizeof(str) / sizeof(str[0]);char *ptr = str; //定义一个指向字符的指针printf("通过指针变量输出结果:");int i = 0;for(;i < n;i++){printf("%c",*ptr); //注意这里使用%c是因为str是一个字符数组而非一个字符串ptr++; //移动指针到下一个字符}return 0;}
5.利用指针变量删除字符数组中的某个字符。(例如: hello 删除l ----> heo)
****这个算法相当经典,可以引申到删除任何数组中的字符,淦,暂时没听太懂就先这样吧。

/*5.利用指针变量删除字符数组中的某个字符。(例如: hello 删除l ----> heo)*///此时要注意删除字符不是把它变没而是让后面不删除的字符取覆盖到要删除的字符的位置#include <stdio.h>int main(void)
{char str[64] = {0};printf("请输入一个字符串:");fgets(str,sizeof(str),stdin); //标准输入,如果把\n也作为遍历里的就不需要做处理换行符char ch;printf("请输入一个待删除的字符:");ch = getchar(); //从键盘获取字符,它的返回值会接受字符ch //sanf("%c",&ch);char *p,*q; //定义两个指针变量for(p = str,q = str; *p ; p++) //pq指向字符数组首地址,p指针遍历所输入的字符串,q指针是要删除的字符{if(*p != ch){if(p != q) //增加一个判断语句,会把效率提高,很多不必要的语句将不再执行*q = *p; //当p指向元素不等于待删字符且p指向元素不等于q指向元素,将p指向元素赋给q指向的元素,去覆盖q++; //q继续往下走看是不是待删除字符}}*q = '\0'; //'\0'对应的值就是0,不是字符数组的话不可以是*q = 0;,因为sr[64] = {0}很有可能结束了后面是0,停止不了假设不是一个字符数组 /*q - str*/; //指针相减,当前元素前第n个元素的地址puts(str); //输出后结果,fgets函数多一个换行符,,没有处理,所以输出结果会多一个换行return 0;
}
碎碎念:这个运行出来的换行符我暂时还不会删,等俺会了,回来改,或者有没有大佬帮忙纠错哈哈
相关文章:
C语言—指针
碎碎念:做指针题的时候我仿佛回到了原点,总觉得目的是为了把框架搭建起来,我胡说的哈31 1.利用指针变量将一个数组中的数据反向输出。 /*1.利用指针变量将一个数组中的数据反向输出。*/#include <stdio.h> #include <time.h> #include <…...
c++作业
Shell中的函数(先调用后使用的原则)(没有申明) (Function) 函数名(有没有参数根据调用格式)(不能写任何内容) { 函数体 Return 返回值 } 函数名 ----》…...
什么是tomcat?tomcat是干什么用的?
前言 Tomcat是一个开源的、轻量级的应用服务器,是Apache软件基金会的一个项目。它实现了Java Servlet、JavaServer Pages(JSP)和Java Expression Language(EL)等Java技术,用于支持在Java平台上运行的动态W…...
中科院一区论文复现,改进蜣螂算法,Fuch映射+反向学习+自适应步长+随机差分变异,MATLAB代码...
本期文章复现一篇发表于2024年来自中科院一区TOP顶刊《Energy》的改进蜣螂算法。 论文引用如下: Li Y, Sun K, Yao Q, et al. A dual-optimization wind speed forecasting model based on deep learning and improved dung beetle optimization algorithm[J]. Ener…...
C# 如何实现一个事件总线
EventBus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。 它允许不同的组件通过发布和订阅事件来进行解耦和通信。在给定的代码片段中,我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件…...
Python学习路线图
防止忘记,温故知新 进阶路线...
作业2.14
chgrp: 只能修改文件的所属组 chgrp 新的组 文件名 要求:修改的目标组已经存在 chown: chown 新的用户名 文件名 sudo chown root :1 将文件1的所属组用户和所属组用户都改为root sudo chown root:ubuntu 1 将文件1的所属用户…...
基于python+django+mysql的小区物业管理系统
该系统是基于pythondjango开发的小区物业管理系统。适用场景:大学生、课程作业、毕业设计。学习过程中,如遇问题可以在github给作者留言。主要功能有:业主管理、报修管理、停车管理、资产管理、小区管理、用户管理、日志管理、系统信息。 演示…...
控制与状态机算法
控制与状态机算法是计算机科学、电子工程和自动化领域中常用的一种设计工具,它用来描述一个系统的行为,该系统在不同时间点可以处于不同的状态,并且其行为取决于当前状态以及输入的信号或事件。状态机算法的核心概念包括: 状态(State):系统的任何可能配置。每个状态代表…...
sql常用语句小结
创建表: create table 表名( 字段1 字段类型 【约束】【comment 字段1注释】, //【】里面的东西可以不用加上去 字段2 字段类型 【约束】【comment 字段2注释】 )【comment 表注释】 约束:作用于表中字段上的规则…...
云计算基础-虚拟机迁移原理
什么是虚拟机迁移 虚拟机迁移是指将正在运行的虚拟机实例从一个物理服务器(或主机)迁移到另一个物理服务器(或主机)的过程,而不会中断虚拟机的运行。 虚拟机拟机迁移分类虚 热迁移:开机状态下迁移 冷迁…...
云计算基础-云计算概念
云计算定义 云计算是一种基于互联网的计算方式,通过这种计算方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。云计算依赖资源共享以达成规模经济,类似基础设置(如电力网)。 云计算最基本的概念就是云加端,我们有一个…...
如何将阿里云服务器迁移
📑前言 本文主要是如何将阿里云服务器迁移实现数据转移的文章,如果有什么需要改进的地方还请大佬指出⛺️** 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日…...
如何将本地的python项目部署到linux服务器中
大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 。 前言 本地写好的python项目,如何部署在服务器上运行呢?今天,我们就来抽一点点时间来看看。(网上找的资料,大部分都囫囵吞枣的…...
每日五道java面试题之java基础篇(五)
目录: 第一题. final、finally、finalize 的区别?第二题. 和 equals 的区别?第三题.hashCode 与 equals?第四题. Java 是值传递,还是引⽤传递?第五题 深拷贝和浅拷贝? 第一题. final、finally、finalize 的…...
HiveSQL——用户行为路径分析
注:参考文档: SQL之用户行为路径分析--HQL面试题46【拼多多面试题】_路径分析 sql-CSDN博客文章浏览阅读2k次,点赞6次,收藏19次。目录0 问题描述1 数据分析2 小结0 问题描述已知用户行为表 tracking_log, 大概字段有&…...
专利的申请
申请发明或者实用新型专利的,应当提交请求书、说明书及其摘要和权利要求书等文件。 请求书应当写明发明或者实用新型的名称,发明人或者设计人的姓名,申请人姓名或者名称、地址,以及其他事项。 说明书应当对发明或者实用新型作出清…...
嵌入式学习 C++ Day5、6
嵌入式学习 C Day5、6 一、思维导图 二、作业 1.以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴…...
阿里云香港服务器cn2速度测试和租用价格表
阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品,中国电信CN2高速网络高质量、大规格BGP带宽,运营商精品公网直连中国内地,时延更低,优化海外回中国内地流量的公网线路,可以提高国际业务访问质量。阿里云服务…...
《学成在线》微服务实战项目实操笔记系列(P92~P120)【下】
史上最详细《学成在线》项目实操笔记系列【下】,跟视频的每一P对应,全系列18万字,涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳,参考这篇,相信会带给你极大启发。 四、课程发布模块 4.1 (课程发布)模块需求…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
