关于C语言的问题?

有没有人在啊,想请分析下,关于C语言的问题??

编写函数,将具有10个元素的char类型数组,从下标为4的元素开始,全部设为“*”(前四个元素的内容不变).
这个问题如何做?求解答!
最新回答
你会腻我何必

2024-10-22 21:27:54

首先给你看一些资料。
C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:

3+5,6+8
称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为

表达式1,表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式

a=3*5,a*4
对此表达式的求解,读者可能会有两种不同的理解:一种认为“3*5,a*4”
是一个逗号表达式,先求出此逗号表达式的值,
如果a的原值为3,则逗号表达式的值为12,将12赋给a,
因此最后a的值为12。另一种认为:“a=3*5”是一个赋值表达式”,“a*4”是另一个表达式,二者用逗号相连,构成一个逗号表达式。这两者哪一个对呢?赋值运算符的优先级别高于逗号运算符,
因此应先求解a=3*5(也就是把“a=3*5”作为一个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。

一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如(a=3*5,a*4),a+5
先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。

逗号表达式的一般形式可以扩展为

表达式1,表达式2,表达式3……表达式n
它的值为表达式n的值。

逗号运算符是所有运算符中级别最低的。因此,下面两个表达式的作用是不同的:


x=(a=3,6*3)


x=a=3,6*a

第①个是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18。第②个是逗号表达式,它包括一个赋值表达式和一个算术表达式,x的值为3。

其实,逗号表达式无非是把若干个表达式“串联”起来。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于循环语句(for语句)中.

请注意并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如

printf("%d,%d,%d",a,b,c);

上一行中的“a,b,c”并不是一个逗号表达式,它是printf函数的3个参数,参数间用逗号间隔。
如果改写为

printf("%d,%d,%d",(a,b,c),b,c);
则“(a,b,c)”是一个逗号表达式,它的值等于c的值。括弧内的逗号不是参数间的分隔符而是逗号运算符。括弧中的内容是一个整体,作为printf函数的一个参数。
C语言表达能力强,其中一个重要方面就在于它的表达式类型丰富,运算符功能强,因而c使用灵活,适应性强。

所以,“n=i=2,++i,i++”这个式子中,n=i=2的结果是n=2,i=2;
++i结果是n=2,i=3;
++i结果是n=2,i=3;(前置++先加后用,后置++先用后加)
又因为逗号表达式的值是最右边的那个式子(即i++),所以值为3;
同理:a=(3*5,a+4);
这个式子中先计算3*5=15,但这并不是a的值,因为逗号表达式的值是最右边的那个式子
即a+4,又因为a=10,所以值为10+4=14.
白日依山尽

2024-10-22 18:10:10

这是一个逗号表达式,最后一个式子的值就是整个表达式的值。
n=i=2,做完这一步i的值为2
++i,i自增,之后值为3
i++,这是最后一个表达式,+在后面的时候表示先取值后自增,这时i的值仍为3,逗号表达式的值就是3。
但是等整个表达式执行完之后i的值就是4了。
另外,那个不是函数。函数要有函数名和括号,这里没有函数名,因此不是函数。同样也是逗号表达式,a的值为14。
执手

2024-10-22 09:19:30

已解决,望采纳
#include<stdio.h>
void main(){
char ch[10];
int i=0;
for(i;i<10;i++)
ch[i]=' ';
for(i=0;i<10;i++)
if(i>3)
ch[i]='*';
for(i=0;i<10;i++)
printf("%c",ch[i]);
}
{妳懂什麽

2024-10-22 08:21:41

#include<iostream>
int main()
{
char str[10];

for(int i=0;int i<10;i++)
{
cin>>str[i];
}

for(int i=4;i<10;i++)
{
str[i]="*";
}

return 1;
}
晚街

2024-10-22 21:37:57

void foo(char *array) 
{
    int idx = 4;
    for (; idx < 10; idx ++)
        arrar[idx] = '*';  
}