中易网

#include<stdlib.h> char *fun(char (*a)[81], int num, char *max) { int i; max=a[0] ; for(i

答案:3  悬赏:0  
解决时间 2021-01-17 04:40
  • 提问者网友:遁入空寂
  • 2021-01-16 19:25
#include<stdlib.h> char *fun(char (*a)[81], int num, char *max) { int i; max=a[0] ; for(i=1;i<num;i
最佳答案
  • 二级知识专家网友:旧脸谱
  • 2021-01-16 20:42
strlen()函数的原型是:
unsignedintstrlen(char *str)
所以你说的strlen()括号内是指针所指的字符串是错误的,仅仅只是指针,
那就相当于调用strlen()函数时 将地址a【i】和地址max传递给strlen()函数
看了他们的回答,那是不对的,(*a)【】这个东东可不是指针数组,也不是有81个指针。而是指向数组的指针,所指向的数组有81个字符变量
追问:strlen()里放地址 表示测什么的长度啊?
追答:就表示测量指针指向的那个变量的字符个数,其实unsignedintstrlen(char *str)
就是统计字符串str中字符的个数 为什么说 str是字符串 ,因为*str是指针,你想想假如没有 * 号,那么 char str就只是“一个”字符变量,根本就不用测字符个数。
全部回答
  • 1楼网友:野慌
  • 2021-01-16 22:32
strlen 括号内是指针指向的字符串, a[i]max 都是指针,我看没问题。
返回的就是字符最长的那个指针。
追问:strlen(a[i]) a[i]max都是指针不加*不表示指针所指的字符串啊?!
追答:看看你的参数,类型定义char (*a)[81], char *max都是指针,没问题。
指针使用的时候就不必要加*了,只是在定义声明时候加上。
  • 2楼网友:山河有幸埋战骨
  • 2021-01-16 21:08
是指针,这两个分别是指向字符串的指针
这个函数是找最长字符串吧,返回指针指向最长字符串首个内存
还有{}的问题,这个最好括清楚
还有,*表示的是取值,&表示取地址,两者要分清楚,如果一个指针叫p指向一个int
定义为int* p,但是*p所表示的是p指向的值(取值),所以*p=1的意思是直接更改p指向内存的值为1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息