c语言中,一个函数参数为char *s,在该函数定义里应该把s作为数组用还是指针用?可以直接写fo

作者&投稿:莘彪 (若有异议请与网页底部的电邮联系)
C语言中定义一个指向字符的指针数组char *s[5], 则*s[1],s[1],*(s+1),s+1各代表什么意思?请看下面的程序~

void sort(char *s[]) 这里接收到的是指针数组,即:数组中各元素 是指针地址,s是数组首地址

s[i]表示第i+1个元素 的值(地址,一个字符串的首地址,* s[i] 表示这个字符串的第一个元素,是个字符)
s+i是第i+1个元素的地址,*(s+i)是地址中的数据,等同于s[i]

在C语言中,数组作为参数,进行传递时,传递的是指针 ,换句话说,字符数组作为参数,进行传递时,传递的是字符数组的起始地址,相当于一个字符指针,两者没有区别。比如下面的代码:
#include void f1(char *s) { printf("%s
", s);}void f2(char sa[]) { printf("%s
", sa);}int main(){ char rsa[] ="world hello";f1(rsa);f2(rsa);return 0;}

数组名即数组首元素的指针,不过数组名是不可赋值和自加的,而指针可以.作为函数参数里的指针可以认为s[n]近似等价于*(s+n),也就是*s和s++都是可以用的.

可以的

拿vc编看报错没啊


C语言 写一个函数 输入一个十六进制数 输出相应的十进制
include<stdio.h> include<string.h> include<math.h> \/ 函数:convert 功能:十六进制转十进制 \/ void conver(char arr[]){ int i,j=0,k=0,sum=0,n=strlen(arr);int num[100];for(i=0;i<n;i++){ switch(arr){ case'A':num[j++]=10;break;case'B':num[j++]=11;break;...

c语言中如何一个函数的多次调用
一个函数只能有一个返回值,指针可以返回多个,例如:void aaa(){ int *a,*c;int a,c;a=a;*c=c;a=b();c=b();} 下面调用 *a和*c.

C语言中int argc,char **argv,一个“*”是代表指针,两个“*”是什么...
char **argv 也可以写成 char *argv[ ] 还可以写成 char argv[ ][ ],一样的效果,其目的时接受命令行的参数。比如说你的程序时这样:while( i < argc){ printf("argv[%d]: ", i);printf("%s\\n", argv[i]);i++;} 你在cmd中运行这个程序, print.exe hello, world.那么输出应该...

$1在shell中表示什么意思?
1表示第一个参数。1在shell中称为“位置参数”,表示传入的第一个参数。在shell脚本主体中,表示shell脚本的第一个参数。用在shell脚本函数里时,表示的是函数的第一个入参。同样,在调用函数时也可以传递参数。Shell函数参数的传递和其它编程语言不同,没有所谓的形参和实参,在定义函数时也不用指明...

C语言中一个函数怎样返回多个值
在C语言中,一般情况下函数的返回值是通过函数中的return语句来实现的,每调用一次return语句只能从函数中返回一个值。但在实际很多应用中,我们需要从函数中返回多个值,那我们可以用什么方法实现呢?此时我们可以用三种方法来实现。方法一:设置全局变量 全局变量是在函数外部定义的全局变量,它不属于任何...

编写一个函数。它接受两个参数,一个是字符,另一个是字符串指针。C语言...
include<stdio.h>int fact(char c, char* p){ printf("%c\\n%s\\n", c, p); return 0;}int main(){ char ch = 'a'; char str[100] = " I am a string!"; fact(ch, str); return 0;}

C语言编写一个函数功能是删除字符串中的字符d
算法很多,告诉你一种比较好想的算法!自己编写,练习一下才有收获!定义一个数组char a[10],输入一个字符串给它。再定义一个数组char b[10],把数组a中不是字符d和D的字符赋给数组b即可。很简单的!\/\/ \/\/ \/\/ 代码如下(已经编译运行过!)如下:include "stdio.h"void main(){ char a[...

c语言有没有把一个宏作为函数参数的。
的确是不可以当函数的参数,但是可以换一个间接的思路。将宏定义放在另一个函数里,通过取地址的方式来把你原先想去处理的参数进行处理。示例如下:include<stdio.h> define cal(m) {m = m + 10;} int main(void){ int Val_0 = 20;test(&Val_0);printf("%d", Val_0);system("pause"...

C语言编写一个函数,根据形参x和y的关系,返回不同的值,具体要求是:如果x...
include<stdio.h>int f(int x,int y) { int z=0; if ( x>y ) z=1; else if ( x<y ) z=-1; return z; }void main() { int a,b,c; scanf("%d%d",&a,&b); c=f(a,b); printf("%d\\n",c);}

c语言中% s是什么函数?
s是C语言中一个非常重要的输入输出函数,其含义为格式化输出函数。它可以将程序中的变量按指定的格式输出到屏幕上。%s既可以输出字符串、数字等基本数据类型,也可以输出自定义的数据类型,如结构体、指针等。%s函数可以让程序员更加方便地掌握程序中的数据状态,便于调试和优化程序。在C语言中,使用%s函数...

康县13033405466: c语言中,一个函数参数为char *s,在该函数定义里应该把s作为数组用还是指针用?可以直接写fo -
山盼葡萄: 数组名即数组首元素的指针,不过数组名是不可赋值和自加的,而指针可以.作为函数参数里的指针可以认为s[n]近似等价于*(s+n),也就是*s和s++都是可以用的.

康县13033405466: C语言中的char具体用法 -
山盼葡萄: C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char *a;”则定义了变量a是字符指针类型. char是C语言整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认...

康县13033405466: C语言中如何定义一个返回值为char *的函数指针. -
山盼葡萄: C语言中,函数的定义格式:函数返回值类型 函数名 (形参列表). 所以,返回值为char* 的函数指针的定义格式是: char* (*指针变量名)(函数形参列表) { 函数体; }

康县13033405466: 在C语言中,getchar,putchar代表什么意思?怎么用? -
山盼葡萄: 在C语言中,getchar代表读入一个字符,putchar代表输出一个字符.getchar的用法是输入时直接使用getchar()函数获取字符,putchar的用法是传入字符变量进行打印. getchar由宏实现:#define getchar() getc(stdin).getchar有一个int型的返...

康县13033405466: c语言;函数的参数为 char *类型时,形参与实参结合的传递方式为 -
山盼葡萄: 就是字符串指针.看来你对c语言的“函数"不完全理解才会这么问!函数就好比一个做冰棒的杯子(或模具),而水或牛奶以及其他用来做冰棒的原料好比函数的实参,冰棒做好了也就是函数返回了,实参与函数脱离关系,就好比我们冰棒做好了,从杯子里取出冰棒.而杯子还在那里,但也许你用其他原料继续做冰棒,于是又用杯子了,这就好比你换一个实参又一次调用同一个函数.......

康县13033405466: char 是什么意思? -
山盼葡萄: Char 是计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型.1、char有一个特殊的语言就是char *,它在C/C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,而是用于定义指针变量,如:...

康县13033405466: c语言里一个需要char类形变量的函数,此时的变量没有给初值,跑起来会是怎么样 -
山盼葡萄: 一般不会怎么样,在使用之前去赋值就可以. 如果不赋值而去取它的值,是一个不确定也无意义的值,程序运行可能会得到莫名其妙的结果.

康县13033405466: c语言中 int putchar(char x );参数是char. -
山盼葡萄: 因为char *p=a='G';即p的值是'G'.因此,putchar(p);相当于putchar('G');会输出G.但编译时应该会发生警告.因为两点:1、 对于putchar(p);函数调用,是把G的ASCII码传递给了putchar函数.又因为p是指针类型,所以实际上是把这个ASCII码作为一个地址(一个int型值),传递给putchar函数的,所以会发出警告(因为putchar需要的是char,不是int).2、 char *p=a;需要一个char*,传递了一个char(之所以传递成功了,因为自动隐式地进行了转换,但会发出警告).

康县13033405466: C语言简单问题,定义一个函数void a(char),char a(char),int a(cha -
山盼葡萄: 这应该是三个函数声明吧,第一个a是一个返回值为void,参数字符类型的函数; 第二个a是一个返回值为字符类型,参数也是字符类型的函数;第三个a是一个返回值为int整形的,参数为字符类型的函数.这应该不会只是定义一个函数吧...

康县13033405466: 问题如图,c语言中自定义函数的返回类型为什么是 char * 接收的也是char *? -
山盼葡萄: 问题如图,c语言中自定义函数的返回类型为什么是 char * 接收的也是char *? 函数参数是char *,表示函数的参数是一个指针. 函数的返回值是char *,表示函数将函数一个指针

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网