错题总结五

一. 操作访问字节个数问题

这道题考察的是指针有关的知识,而这种指针的知识我们提到过

指针相关知识(入门)-CSDN博客

指针相关知识(进阶)-CSDN博客

在这里,我们复习一下。在指针里,int有4个字节,short有2个字节,换句话说,什么类型的指针决定了一次可以处理几个字节。

对上面的题画图说明

int               4个字节       

              1                         2                         3                            4                               5                                        

01000000

10

000000110000000001000001010000

低地址     0                       1                        2                          3                             4           高地址

short        +1是加2个字节         

因此,for循环中i每+1都在int中前进2个字节,并且使得那2个字节变成0.一共走8个字节,也就是说,for循环中走过了前2个int,都变成0,其余不变。所以最后的结果是00345       

二.指针的基本知识

1.int指针+1,向后偏移4个字节

   short指针+1,向后偏移2个字节

   double指针+1,向后偏移8个字节

   char指针+1,向后偏移1个字节     

指针-指针得到是指针和指针之间的元素个数     

     指针能比较大小      

三.const位置对指针的限制

int *const p      p的内容不能改变

int const *p      p的指向不能改变

const int *p      p的指向不能改变

int *p[10]         数组,长度是10,数组里面的内容是int*     存放指针的数组--指针数组

int (*p)[10]       指针,指向一个数组,数组长度是10,是int类型的数据--数组指针

依据我自己的理解,就是看const距离最近的是上什么,*ps就是指向,p就是内容,而且最后一个是p跟什么,是什么就在后面,例如,int *p[10] 是数组,因此是指针数组,int (*p)[10] 是指针,因此是数组指针

四.指针的加减运算

678910

将指针指向开头,也就是6,然后指针移动3指向9,最后在指向的数字+3,就是将9处改为12。所以最后的输出结果是6 12

五.

在小端中的存储

44332211

而题目中将首变成0,即

00332211

从高到低输出是11223300

什么是大小端(针对的是字节序)

低位字节      高位字节

         0x11223344

小端

低地址                                                                                                                          高地址

44332211

大端

11223344

六.野指针

没有初始化的指针

如何避免野指针

使用空指针(NULL)初始化指针变量

在指针释放后将其设置为NULL

确保指针始终指向有效的内存地址

检查指针的有效性后再进行访问

七.逆置

#include <stdio.h>
void Charge(char *str)
{char *left = str;char *right = str + strlen(str) -1;while(left < right){char tep = *left;*left = *right;*right = tep;left ++;right --;}
}int main() {char str[10000] = {0}; while (gets(str) != NULL) { // 注意 while 处理多个 case// 64 位输出请用 printf("%lld") to Charge(str);printf("%s\n",str);}return 0;
}

八.实现一个函数,可以左旋字符串中的k个字符。
//例如:
//ABCD左旋一个字符得到BCDA
//ABCD左旋两个字符得到CDAB

A B C D

   B C D A 

       C D A B

           D A B C

               A B C D

1.确定挪动几个(有4个字符,就是n%4)

2.怎么挪动(后一个覆盖前一个)

void leftRound(char* str, int time)
//{
//	int len = strlen(str);
//	time = time % len;
//	int i = 0;
//	for (; i < time; i++)
//	{
//		char tep = str[0];
//		int j = 0;
//		for (j = 0; j < len - 1; j++)
//		{
//			str[j] = str[j + 1];
//		}
//		str[j] = tep;
//	}
//}
//
//   int main();
//   {
//	char str = "ABCD";
//	leftRound(str, 2);
//	printf("%s\n", str);
//	return 0;
//    }

#if 0
#endif

在代码前后,隐蔽代码

#if 1
#endif

消除代码的隐蔽        

                                                                                                      

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

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

相关文章

水果软件2024FL Studio21.3mac苹果中文版

FL STUDIO21发布&#xff0c;提供您一直在等待的出色工作流程功能。通过新效果、多个播放列表曲目选择和无所畏惧的撤消一切编辑&#xff0c;将您的音乐带入2024年。FL Studio21中文完整版是一个功能齐全、开放式架构的PC音乐创作和制作环境。它具有基于音乐音序器的图形用户界…

二、RK3588-安装Opencv-4.8.1(C++版本)

1.前言 OpenCV是一个跨平台的计算机视觉和机器学习软件库&#xff0c;基于Apache2.0许可&#xff08;开源&#xff09;发行。它可以在Linux、Windows、Android和Mac OS操作系统上运行。OpenCV由一系列C函数和少量C类构成&#xff0c;同时提供了Python、Ruby、MATLAB等语言的接口…

神秘的Cookie和Session

Cookie 1.Cookie是什么&#xff1f; Cookie是浏览器提供的持久化储存数据的方式。 2.从哪里来&#xff1f; Cookie从服务器中来&#xff0c;存储到客户端中。一个客户端就对应着一个浏览器。 服务器代码中决定了什么样的数据会储存到客户端中&#xff0c;通过HTTP相应的Se…

常见位运算模板方法总结(包含五道例题)

哈喽大家好&#xff0c;今天博主给大家带来算法基础常见位运算的模板&#xff0c;可以说大家遇到的百分之九十与位运算有关的题都可以用得上。话不多上我们上干货&#xff1a; 一.基础位运算符 << 左移运算符 >> 右移运算符 ~ 取反 & 与运算 | …

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈

深入浅出图解C#堆与栈 C# HeapingVS Stacking第一节 理解堆与栈 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理](https://mp.csdn.n…

Leetcode每日一题周汇总 (12.24-12.30)

Leetcode每日一题周汇总 (12.24-12.30) 1.Sunday (12.24) 题目链接&#xff1a;1954. 收集足够苹果的最小花园周长 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标…

消息中间件常见知识点

一&#xff1a;消息队列的主要作用是什么&#xff1f; 1.消息队列的特性&#xff1a; 业务无关&#xff0c;一个具有普适性质的消息队列组件不需要考虑上层的业务模型&#xff0c;只做好消息的分发就可以了&#xff0c;上层业务的不同模块反而需要依赖消息队列所定义的规范进行…

【ROS2】MOMO的鱼香ROS2(四)ROS2入门篇——ROS2节点通信之话题与服务

ROS2节点通信之话题与服务点 引言1 理解从通信开始1.1 TCP&#xff08;传输控制协议&#xff09;1.2 UDP&#xff08;用户数据报协议&#xff09;1.3 基于共享内存的IPC方式 2 ROS2话题2.1 ROS2话题指令2.2 话题之RCLPY实现2.2.1 编写发布者2.2 2 编写订阅者2.2.3 运行测试 3 R…

一骑绝尘!维乐携手骑行侠客轻风逆旅带你解锁冬日逆旅

是逆风冬旅还是冻旅&#xff1f;冬日似乎都被骑友们默认做事应该闭关闭的时间了&#xff0c;空气中萧瑟的寒风仿佛是穿透我们的骨膜&#xff0c;当我还在路上瑟瑟发抖的时候&#xff0c;此时一位公路骑行侠正在开启他的冬日旅途~      以下是来自他的自诉&#xff1a;   …

Codeforces Round 900 (Div. 3)(A-F)

比赛链接 : Dashboard - Codeforces Round 900 (Div. 3) - Codeforces A. How Much Does Daytona Cost? 题面 : 思路 : 在序列中只要找到k&#xff0c;就返回true ; 代码 : #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…

easyx的窗口函数

文章目录 前言一、EasyX的颜色二、EasyX的坐标和设备1&#xff0c;EasyX的坐标2&#xff0c;EasyX的设备 三、窗口函数1&#xff0c;初始化窗口函数2&#xff0c;关闭绘图窗口3&#xff0c;设置窗口背景板颜色4&#xff0c;清空绘图设备 前言 easyx是针对c的图形库&#xff0c;…

2023总结与展望--Empirefree

今年一篇博客都没写过了&#xff0c;好像完全在忙在工作和生活上面了&#xff0c;珍惜自我&#xff0c;保持热情&#xff0c;2024对我好点 文章目录 &#x1f525;1. 年终总结1.1.学习工作计划1.2. 生活计划1.3 个人总结 &#x1f525;2. 未来展望 &#x1f525;1. 年终总结 1…