C语言指针基础题(三)


感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒 个人主页
🥸🥸🥸 C语言
🐿️🐿️🐿️ C语言例题
🐣🐓🏀 python
以下是后面例题所涉及到的文章,如果有不会的可以点击了解
C语言深入理解指针(非常详细)(一)
字符函数和字符串函数(上)
字符函数和字符串函数(下)
C语言深入理解指针(非常详细)(四)

例题一

以下关于指针的说法,正确的是( )
A.int *const p与int const *p等价
B.const int *p与int *const p等价
C.const int *p与int const *p等价
D.int *p[10]与int (*p)[10]等价

例题解析

const修饰其实就是让修饰的对象不会被改变,因为有时候我们在一些函数中传入了一些数据,而有些数据我们并不希望对其进行修改,所以这时就需要用到const修饰

A :int *const p与int const *p我们必须要明白const修饰的对象
int *const p的const修饰的是p,int const *p的const修饰的是 *p(其实const修饰的就是const后面部分),p和 *p很明显是不等价的,因为p其实是一个指针变量,p指向的地址是不能被修改的,而 *p则是对p解引用后的结果是不能被修改的,所以这两个是不等价的

B :const int *p中const修饰的是 *p(const int *p等价于int const *p),int *const p的const修饰的是p,所以上不等价的

C :const int *p与int const *p是等价的

D:int *p[10]与int (*p)[10]主要一个是指针数组,一个是数组指针,注意要分清哪个是指针数组,哪个是数组指针(可能学了一段时间就会忘记怎么判断)

答案

**答案 C **

例题二

C语言中哪一种形式声明了一个指向char类型变量的指针p,p的值不可修改,但p指向的变量值可修改?( )

A.const char *p
B.char const p
C.char
const p
D.const char *const p

例题解析

这道题和上一题是一样的

const修饰*p,表示p指向的内容不能修改

const修饰p本身,表示p的指向不能修改,p指向的空间中内容可以修改

第一个const表示p指向的内容不能修改,第二个const表示p不能指向其他变量

答案

答案

例题三

调整奇数偶数顺序
输入一个整数数组,实现一个函数,

来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,

所有偶数位于数组的后半部分。

例题解析及答案

给定两个下标left和right,left放在数组的起始位置,right放在数组中最后一个元素的位置
循环进行一下操作

如果left和right表示的区间[left, right]有效,进行b,否则结束循环

left从前往后找,找到一个偶数后停止
right从后往前找,找到一个奇数后停止
如果left和right都找到了对应的数据,则交换,继续a

void swap_arr(int arr[], int sz)
{
   
	int left = 0;
	int right = sz-1;
	int tmp = 0;


	while(left<right)
	{
   
		while((left<right)&&(arr[left]%2==1))
		{
   
			left++;
		}
     
		while((left<right)&& (arr[right]%2==0))
		{
   
			right--;
		}
		if(left<right)
		{
   
			tmp = arr[left];
			arr[left] = arr[right];
			arr[right] = tmp;
		}
	}
}

例题四

模拟实现库函数strcpy

答案

char * my_strcpy(char * dst, const char * src)
{
   
        char * cp = dst;
        while( *cp++ = *src++ );
        return( dst );
}

例题五

模拟实现库函数strlen

例题解析及答案

size_t my_strlen (const char * str)
{
   
        const char *eos = str;
        while( *eos++ ) ;
        return( eos - str - 1 );
}

相关推荐

  1. C语言指针基础()

    2023-12-22 20:16:03       49 阅读
  2. C语言指针基础知识(

    2023-12-22 20:16:03       16 阅读
  3. C语言指针基础

    2023-12-22 20:16:03       19 阅读
  4. c语言基础_指针简述

    2023-12-22 20:16:03       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 20:16:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 20:16:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 20:16:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 20:16:03       20 阅读

热门阅读

  1. elasticsearch8.5版本集成springboot高版本3.0.0开发

    2023-12-22 20:16:03       33 阅读
  2. 列表的上移动和下移动实现

    2023-12-22 20:16:03       39 阅读
  3. GSON 泛型对象反序列化解决方案

    2023-12-22 20:16:03       42 阅读
  4. k8s中Chart模板流程控制if_with_range和变量

    2023-12-22 20:16:03       41 阅读
  5. Watchdogs

    Watchdogs

    2023-12-22 20:16:03      35 阅读
  6. 基于K-means和形态学算法的叶子病虫害检测

    2023-12-22 20:16:03       40 阅读
  7. 基于FSRCNN的图像超分辨重建算法附Matlab代码

    2023-12-22 20:16:03       38 阅读
  8. [蓝桥杯 2013 省 AB] 错误票据

    2023-12-22 20:16:03       34 阅读
  9. P2P应用

    P2P应用

    2023-12-22 20:16:03      46 阅读
  10. elementui下选框获取后端数据并查询

    2023-12-22 20:16:03       39 阅读
  11. React尝鲜

    2023-12-22 20:16:03       41 阅读
  12. k8s pod常用资源清单

    2023-12-22 20:16:03       30 阅读
  13. spark中 write.csv时, 添加第一行的标题title

    2023-12-22 20:16:03       44 阅读