㈠ c语言中双引号引起来的字符串可以作为函数参数吗
可以的,就像以下代码:
voidshow(char*str)
{
printf("%s ",str);
}
你在调用的时候,一般是传一个变量进去,同样也可以传一个字符串常量进去,
例如show("HelloWorld");
为什么可以呢?首先要想,什么是变量,变量代表着值不确定,是动态的。
而当一个变量有值的时候,除非它发生改变,否则它就是"确定"的。
既然一个不确定的东西能作为参数传递过去,那么一个确定的字符串有何理由不能传递呢?
㈡ C语言字符串指针作函数参数
实参数组p中的内容没有改变
因为fun函数仅仅是改变了参数s指针的指向,使其指向了局部变量数组a而已
㈢ C语言程序设计:设计一函数,函数的形参为一字符串,判断该字符串是否为字符
代码和运行情况如图:
㈣ c语言中 怎样把字符串作为函数变量
你是说函数的参数吧?
定义参数的类型为 char *p; 或者 char p[];
即字符型指针或字符型数组
㈤ c语言如何传递字符串
c语言函数中传递字符串,可以分为两种情况,一种是将字符串作为参数,一种是将字符串作为返回值 ,当使用字符串作为返回值时,切记不要传递局部字符数组。下面是一个示例代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidf(char*str){//字符串作参数
printf(str);
}
char*r(){//字符串作返回值
//使用动态分配内存,不要使用局部变量比如
//charbuf[80];因为局部变量在函数结束时,栈区变量已被回收
char*str=(char*)malloc(256*sizeof(char));
if(str==0){printf("can'tallocmem ");return0;}
elsememset(str,0x00,sizeof(char)*256);
returnstr;//
}
intmain()
{
char*pstr=r();
if(pstr!=0)strcpy(pstr,"helloworld ");
f(pstr);
free(pstr);
return0;
}
㈥ c语言中 如果给函数形参传递字符串
单个字符用单引号引起来,比如'\0'你都用了双引号,改过来就好了
㈦ c语言字符串指针作函数参数。
fun函数里面指针s=a传递的是函数地址,s在函数入口承接p指针值,之后接a,不改变p指针地址下的值!
㈧ c语言:字符串做为函数参数传递
1、值传递
void swap(int x,int y)
{ int temp = x;
x = y;
y = temp;
}void main()
{
int a = 10, b = 20;
swap(a, b);
}
执行后,并不会交换。
2、引用传递
void swap(int &x,int &y)
{ int temp = x;
x = y;
y = temp;
}void main()
{
int a = 10, b = 20;
swap(a, b);
printf("a=%d b=%d ", a, b);
}
执行后,发生交换。
3、指针传递
void swap(int *x,int *y)
{ int temp = *x; *x = *y; *y = temp;
}void main()
{
int a = 10, b = 20;
swap(&a, &b);
printf("a=%d b=%d ", a, b);
}
执行后,发生交换。
参数传递只有上面三种,但是如果加上数组,就会产生几种新形式。
首先,明确数组型变量名本身只是该数组所占存储空间的首地址:
int a[3] = { 1, 2, 3 }; int *p = a; //等价于下行 //int *p = &a[0];
printf("%d", *p);
典型的数组做参数。
void fun(char s[]){ for (int i = 0; s[i] != '