當前位置:首頁 » 編程語言 » c語言傳輸協議數組
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言傳輸協議數組

發布時間: 2022-08-03 11:39:05

A. 關於c語言數組的傳遞

main()
{
int a[10];

read(a, 10);
wr(a, 10);
}

B. C語言函數間傳輸二維數組的問題。

# include <stdio.h>
int score[30][2],p,sum=0;
void Append();
void Toave(int score[]);
void SortScore(int number[],int score[]);
void SortNumber(int number[],int score[]);
void Sear(int number[],int score[]);
void Analysis(int number[],int score[]);
void List(int number[],int score[]);
int main()
{
int a;
while(1){
printf("1. Append record\n");
printf("2. Caculate total and average score of course\n");
printf("3. Sort in descending order by score\n");
printf("4. Sort in ascending order by number\n");
printf("5. Search by number\n");
printf("6. Statistic analysis\n");
printf("7. List record\n");
printf("0. Exit\n");
printf("Please enter your choice:");
scanf("%d",&a);
if(a==1)
{
Append();
}
if(a==2)
{
Toave(score);
}
if(a==3)
{
SortScore(score);
}
if(a==4)
{
SortNumber(score);
}
if(a==5)
{
Sear(score);
}
if(a==6)
{
Analysis(score);
}
if(a==7)
{
List(score);
}
if(a==0)
{
break;
}
}
return 0;
}
void Append()
{
int i;
printf("Please input the number of the students:");
scanf("%d",&p);
printf("Please input the ID and score of the students:\n");
for(i=0;i<p;i++)
{
scanf("%d %d",&score[i][i/2+1]; //i/2+1是什麼意思
}
}
void Toave() //這里不要參數,因為score[30][2]是全局變數。
{
int i;
for(i=0;i<p;i++)
{
sum=sum+score[i][2]; //這個錯誤,第二維數組是0,1,沒有2哦
}
printf("Total score is %d.\n",sum);
printf("Average score is %d.\n",sum/p);
}

C. C語言傳字元串數組

題目不夠詳細啊。給你解釋下什麼叫字元串數組吧
字元串數組就是一個數組,他的每一個元素都是一個字元串。
在c語言中字元串是以\0結尾的一串字元,如「abcd1234\0」
字元串數組str[2]={"abc\0","123\0"}
\0是結束符。字元串數組里的字元長度都為3
列印的時候只顯示abc,\0不顯示

D. 單片機C語言數組傳送,

加按鍵抬起檢測就可以了
if(temp!=0xf0)
{
temp=P3;
while(temp!=0x0f)//按鍵不抬起,一直讀P3
{
temp=P3;
temp=temp&0x0f;
}
switch(temp)
{
case 0xee:..........

我覺得還可以更簡單 while(P3!=0xfe);

E. c語言一維數組傳遞

輸入具體分數的那個函數裡面scanf裡面有\n,你在測試的時候,輸入一個份數後回車,它還要繼續執行for循環來判斷,所以不會立即產生結果,你在測試的時候,先輸入一個份數後回車換行,你再回車一下,看能不能輸出結果。這是我個人的理解,沒有實際操作,可能理解錯誤

F. 單片機里的C語言函數間的數組傳遞

sizeof(Logo) 計算出來的數值是字元數組Logo的長度加一(包括了字元串的結束字元'\0')之後減一就好理解了,即是計算字元數組Logo的長度。

另在這程序里sizeof(Logo) - 1 可以用函數strlen(Logo)代替 (需提示的是函數strlen是遇到'\0'結束的,因為這里你的Logo是加上code修飾的不用擔心會修改數組的某一內容為'\0'的情況,如在其他的地方用的需留意,免得會出現bug)

再提醒下sizeof(Logo) - 1 和 strlen(Logo)的一個重要的區別就是sizeof(Logo)是在編譯時就計算出數值;而strlen(Logo)是在運行時才調用函數來計算長度的,每用到一次都要調用一次函數,用sizeof(Logo)相對於strlen(Logo)可以節省程序執行的時間

G. c語言中數組參數傳遞

在vs2010中樓主的程序傳參沒有出現問題,注意輸出如果用printf的話,格式應為printf("%f",a[1][1]);
附測試代碼如下:

#define N 3

double Determinant(double a[][N],int n)
{
int i,j;
int R = 0;
printf("size a is %d\n",sizeof(a));//你會發現傳過來的只是其中一個一維數組a[][3],但是由於C的靈活性,可以通過指針訪問的方式來訪問其他內容。
for(i = 0;i<3;i++){
for(j = 0;j<3;j++){
printf("i is %d,j is %d,a is %f\n",i,j,a[i][j]);
}
}
return R;

}

int main(int argc, _TCHAR* argv[])
{
double a[3][3];
int i,j,k;
for(i = 0;i<3;i++){
for(j = 0;j<3;j++){
a[i][j] = (i+1)*j;
}
}
k = Determinant(a,3);
getchar();
return 0;
}

H. c語言數組如何在函數中傳遞不要指針傳遞

數組只能通過指針傳遞,不能通過值傳遞。
數組參數屬於指針參數,指針參數即時傳址參數(或叫引用參數), 如果想在函數中修改參數的值, 這是唯一的途徑.
如果把數組當作參數, 不管願意與否, 它就是指針, 指向第一個值的指針.
1. 數組參數就是指向第一個元素的指針: #include <stdio.h>

void getArr(int p[], int si);

int main(void)
{
int ns[] = {1,2,3,4,5};

getArr(ns, sizeof(ns)/sizeof(ns[0]));

getchar();
return 0;
}

void getArr(int p[], int si) {
int i;
for (i = 0; i < si; i++) {
printf("%d\n", p[i]);
}
}

2. 乾脆直接聲明為指針: #include <stdio.h>

void getArr(int *p, int si);

int main(void)
{
int ns[] = {1,2,3,4,5};

getArr(ns, sizeof(ns)/sizeof(ns[0]));

getchar();
return 0;
}

void getArr(int *p, int si) {
int i;
for (i = 0; i < si; i++) {
printf("%d\n", p[i]);
}
}

3. 即使你在形參中指定維數也不起作用: #include <stdio.h>

void getArr(int p[2], int si);

int main(void)
{
int ns[] = {1,2,3,4,5};

getArr(ns, sizeof(ns)/sizeof(ns[0]));

getchar();
return 0;
}

void getArr(int p[2], int si) {
int i;
for (i = 0; i < si; i++) {
printf("%d\n", p[i]);
}
}

4. 既然是指針, 其值就有被修改的可能: #include <stdio.h>

void getArr(int p[], int si);

int main(void)
{
int ns[] = {1,2,3,4,5};
size_t i;

getArr(ns, sizeof(ns)/sizeof(ns[0]));

for (i = 0; i < sizeof(ns)/sizeof(ns[0]); i++) {
printf("%d\n", *(ns+i));
}

getchar();
return 0;
}

void getArr(int p[], int si) {
int i;
for (i = 0; i < si; i++) {
p[i]++;
}
}

5. 如果是字元數組, 它自己能判斷數組尾界: #include <stdio.h>

void getArr(char p[]);

int main(void)
{
char ns[] = "ABCDEFG";

getArr(ns);

getchar();
return 0;
}

void getArr(char p[]) {
int i;
for (i = 0; p[i]; i++) {
printf("%c: %d\n", p[i], p[i]);
}
}

I. 請問在C語言中,函數傳參時怎樣利用指針傳遞數組

數組名就是指針,例如:

#include <stdio.h>

voidpr(char *p)

{

printf(p);

}

void main(void)

{

char s[] = "abc";

pr(s);

}

(9)c語言傳輸協議數組擴展閱讀:

注意事項

非數組類的聲明盡量以指針的方式進行比較好。倘若一個指針指向的內存並不是一個數組,那麼採用數組名的聲明方式或許就會給人產生錯誤的引導。類似的,如果指向的是一個數組區域,則會給人以更加豐富的信息。例如:

int main(int argc,char* argv[])

{

/* code here */

}

int main(int argc,char** argv)

{

/* code here */

}

兩種方式完全等價,但是前面一種能夠更清晰地看出:這個參數是指向某個元素起始地址的指針,而後面的這種方式則不能夠直觀地看出這種含義。

J. c語言數組傳遞

char *s1,*s2;這里的s1,s2就是上面的substr(s1,s2)里的s1,s2啊,就是定義它的類型,即定義為指向char型的指針變數!

substr(*str1,*str2));這里函數調用不對吧,傳過去數組名就可以了,即substr(str1,str2));試試看吧