㈠ 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] != '