表达式必须包含指向对象的指针类型,但他具有“int“?

这篇具有很好参考价值的文章主要介绍了表达式必须包含指向对象的指针类型,但他具有“int“?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

   xdm,今天在写逆序函数的时候遇到了这样一个问题——表达式必须包含指向对象的指针类型,但他具有"int"?原来问题出在这里...

   首先来看看题目

创建一个整型数组,完成对数组的操作

     1.实现函数init()初始化数组为全0
     2.实现print()打印数组的每个元素
     3.实现reverse()函数完成数组元素的逆置

  就在第三个函数的时候,我遇到了以下这样的问题

表达式必须包含指向对象的指针类型,c语言,排序算法,算法

  一个简单的逆序函数逻辑没出错,那一定是哪里输入错误,通过警告和Fn+F10以及调试窗口排查终于找到了问题所在

表达式必须包含指向对象的指针类型,c语言,排序算法,算法

   没错,就是在形参接受实参的时候少写了一个【】导致的,具体原因是因为arr数组本质是一个指针类型,指向的是首元素的地址,如果用int 来接收显然不合适,以至于在引用下列定义的int类型的变量时候产生错误——表达式必须包含指向对象的指针类型,但他具有类型"int",解决的办法也很简单,代码如下

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void reverse(int arr[], int sz)
{
	int i = 0;
	int left = 0;
	int right = sz-1;
	for (i = 0; i < sz / 2; i++)
	{
		int tmp = arr[left];
		arr[left] = arr[right];
		arr[right] = tmp;
		left++;
		right--;
		if (arr[left] == arr[right])
			break;
	}
}
void print(int arr[],int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
}
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	reverse(arr,sz);
	print(arr, sz);
	return 0;
}

  好了,今天的分享就到这里,觉得有用的老铁点赞加关注走一波,也希望各位老铁越走越深,成为大佬!!!文章来源地址https://www.toymoban.com/news/detail-568518.html

到了这里,关于表达式必须包含指向对象的指针类型,但他具有“int“?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java密码校验(正则表达式):密码由这四种元素组成(数字、大写字母、小写字母、特殊字符),且必须包含全部四种元素;密码长度大于等于8个字符。

    对用户密码的强度进行校验,要求用户密码达到一定的强度,符合安全性要求。 密码必须由字母和数字组成(同时包括数字和数字);密码长度大于等于8个字符。 密码由这四种元素组成(数字、大写字母、小写字母、特殊字符),且必须包含全部四种元素;密码长度大于等

    2024年02月10日
    浏览(41)
  • js 正则表达式 校验 input输入框 输入格式必须为日期yyyyMM

    要使用正则表达式校验 input 输入框的输入格式是否为日期格式 “yyyyMM”,你可以使用以下 JavaScript 正则表达式: 这个正则表达式匹配的是四位数年份和两位数月份,确保输入的格式为 “yyyyMM”。 以下是一个使用这个正则表达式的例子: 在这个例子中,当用户在 input 输入框

    2024年01月19日
    浏览(33)
  • js 正则表达式 限制input元素内容必须以abc开头,123结尾

    要通过正则表达式验证一个输入元素的内容是否以\\\"abc\\\"开头且以\\\"123\\\"结尾,您可以使用 ^ 表示开头, $ 表示结尾,以及适当的字符类或具体字符。以下是一个示例正则表达式: 上面的正则表达式将匹配以\\\"abc\\\"开头,以\\\"123\\\"结尾的任何字符串,其中 .* 表示匹配零个或多个任意字符

    2024年02月13日
    浏览(28)
  • 正则表达式包含数字和字符匹配

    至少6位。 pattern : (?=. [0-9])(?=. [A-Za-z])[0-9A-Za-z]{6,} 正则表达式中的“?=”是一个正向预查字符,它的意思是匹配前一个字符出现的最少一次。具体来说,当一个匹配出现时,它会检查前一个字符是否符合要求,如果符合,则继续匹配下一个字符,否则停止匹配。

    2024年02月06日
    浏览(46)
  • 这10个Lambda表达式必须掌握,简化你的代码,提高生产力

    Lambda 表达式(lambda expression)是一个匿名函数 ,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。 Lambda表达式可以表示闭包,和传统数学上的意义有区别。 文末有本文重点总结,关于技术类问题可

    2024年02月05日
    浏览(30)
  • Lambda表达式内部访问的局部变量必须是final or effectively final 为什么

    在Java中,Lambda表达式内部访问的局部变量必须是final或者事实上的final。这是因为Lambda表达式实际上是一个闭包,它包含了对其外部的变量的引用,而这些变量在Lambda表达式执行期间不能被修改,否则会导致线程安全问题。 在Java中,final表示一个变量被赋值之后不能再

    2024年02月13日
    浏览(28)
  • 《C和指针》笔记21:表达式求值

    C的整型算术运算总是至少以 缺省整型类型的精度 来进行的。为了获得这个精度,表达式中的 字符型和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升(integral Promotion) 。例如,在下面表达式的求值中, b和c的值被提升为普通整型,然后再执行加法运算

    2024年02月09日
    浏览(28)
  • 《C和指针》(5)操作符和表达式

    下面这个表达式的类型和值分别是什么? 答 :该值为2.0,如果要进行浮点除法,请使用以下表达式 下面这个程序的结果是什么? 答 :这是一个狡猾的问题。比较明显的回答是-10(2-3 *4),但实际上它因编译器而异。乘法运算必须在加法运算之前完成,但并没有规则规定函数调用

    2024年02月08日
    浏览(25)
  • 只含有4个小写字母且不包含f的正则表达式

    这是一个只包含小写字母且长度为4的字符串的正则表达式,其中不包含字母\\\"f\\\": 解释: ^ 匹配字符串的开头。 [a-eg-z] 匹配除了字母\\\"f\\\"之外的小写字母。 {4} 匹配前面的模式恰好4次。 $ 匹配字符串的结尾。 因此,这个正则表达式匹配任何仅包含小写字母且长度为4的字符串,

    2024年02月15日
    浏览(33)
  • 运算符、表达式和内置对象

    一、实验目的 1.会使用IDLE编辑器编写简单数据类型; 2.掌握常量、变量的表示方式和简单操作; 3.掌握Python语言中基本的输入和输出方法; 4.掌握Python语言的各种运算符以及这些运算符的表达式; 5.掌握字符串类型的格式化方法; 6.能综合应用所学基础知识编写一些基本的程

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包