c语言语句理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言语句理解相关的知识,希望对你有一定的参考价值。

用一维数组和指针变量作函数参数,编程打印某班一门课成绩的最高分及其学号。
就是前一句话不理解,谁能用简单易懂的话解释一下。

就是函数参数的不同,让你用不同的方式去用,理解两个参数的性质,数组名做为参数,其实也是一个类似指针的地址引用,在函数里操作的是实际的数组元素,只不过换了个名字,,,指针也是同样的道理,不用传递数值,是传递的地址。。如:你定义一个保存一个班学生成绩的数组,按学号把成绩存入数组,但你要比较数组所有元素的大小,如果按值传递,就得先用一个循环来读取各个元素再比较,如果按照传递地址的话,就直接读取数组中的值,,,,,函数应用的方式就简单一些。。。应用也广一些。。。。因为所有这样的比较都可以用这个函数。。。不管数组有多大,有多少元素。。我说起来也有点乱了。。。。呵呵,,,,追问

你能解释一下术语函数,参数,指针变量吗?我是初学,不太理解

追答

在编程中,函数就是指一段程序段,可以重复使用,根据不同的参数,输出结果也不同,让程序有了更多的结构性。。。(我个人理解。。。)就是你一样的功能要多次用时,把这段程序弄成一个整体,以后只要用到它时,把它的参数换掉就成,,,
参数有形参和实参的区别,形参就是你定义函数的时候,以及你在编写函数体程序段的时候代表运算或处理的那个代表(变量),逻辑性的,,抽象的一个符号。。。。实参就是你在调用函数的时候传递给他的值,,,(这个值要符合你定义函数时那个形参的类型是一致的,只要符合类型,你的函数就能正常运行)。
指针变量,是指一种特殊的变量,它存的是一个地址量。。。不是一盘变量那样的是一个具体的数值,这个我也说的不准确,哈哈,,,他可以改变,但代表的只是一个地址,,他其实也就是一个数值,但代表内存中的一个位置。。。计算机中内存也从0开始编号的。。。。
这些书上不是说的很清楚么,呵呵,,

参考技术A 楼主你好。
代码:
#include<stdio.h>
#include<string.h>
#define N 3
typedef struct _Student

int number;
int score;
Student;
//用一维数组和指针变量作函数参数,编程打印某班一门课成绩的最高分及其学号。
void printBest(Student stu[])
int i;
Student *best = &stu[0];
for(i=1;i<N;i++)
if(stu[i].score>best->score)
best = &stu[i];


printf("Best Score \"%d\" From \"%d\"!\n",best->score,best->number);

void main()

Student stu[N] = 20121214, 85,20121215, 98,20121216, 80;
printBest(stu);


输出:
Best Score "98" From "20121215"!
Press any key to continue
我不知道函数参数要指针变量干嘛,反正我就用Student数组作为参数就能实现了。

函数的参数分为形参和实参,如:
int work(int num)
return num;

这里的num就是形参。
在你调用work函数的时候,如:
int time = 60;
work(time);
这里的time就是实参。

指针变量就是一个存储着地址的变量。
一般的变量中存储的是值,如:
int num = 100;
num这个int变量它的内存区域(假设是0x00123456)中存储的就是100这个数。
int *ptr = #
ptr这个int*变量,也就是指向int变量的变量,它的内存区域中存储的是变量num的地址,也就是(0x00123456)。
这样ptr就指向了num这个变量的内存区域,而*ptr就是根据ptr中存储的地址取数据的操作,*ptr这个表达式的值是100。
0x00111111(ptr的地址) ptr[0x00123456](ptr中的数据是num的地址)
↓(效果就是ptr指向了num)
0x00123456(num的地址) num[100](num中的数据是实际的值)

我觉得楼主基础知识很薄弱,还是多看看书吧。必须打牢基础知识才能学得快、学得好,避免绕弯路、绕远路。指针这东西对初学者的确比较难,所以别灰心,慢慢来,踏实把书看懂了就行了。来自:求助得到的回答本回答被提问者和网友采纳
参考技术A struct student

int number;
int grades;
a[10];
这个要用结构体变量 a[i]里包含学号和分数
参考技术B 就是你自己编写的函数必须接收数组名或者指针追问

就是要调用函数吗?

追答

嗯,自己编写函数,分别接受数组和指针

追问

那指针怎么用?

追答

额,这个要自己看书,这么多让我怎么讲

C语言中for循环怎么理解?

比如:
for(i=0;i<10;i++)
a+=i;
是怎么循环的,详解。

for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。

程序解读:

开始i=0,i<10,执行for循环的内部语句,然后回到i++,i=2,i<10,执行for循环的内部语句,……,直到i++后变成11,11<10,不成立,返回0,循环结束。

扩展资料:

注意事项

1、for循环中的变量可以是一个也可以是多个,不要局限于一个变量处理到底,那样有时会很单调,当程序适合把多个变量组成循环时,用多个for语句来表示就是有些浪费了!

2、for循环中语句可以为语句体, 语句体外加大括号""将参加循环的语句括起来。 for循环的三个表达式都是逗号表达式,这样来说,其实每个分号表达式可以由几个逗号表达式构成,中间用",”隔开,最后以“;”结束。

3、 for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句, ";"不能缺省的原因是编译格式如此,缺省了编译器不认识而会报错。

省略了用来初始化的单次表达式时, 表示不对循环控制变量赋初值。

省略了条件表达式, 若不做其它处理则成为死循环。

省略了所有循环体, 则for语句不被其它形式处理时不产生任何作用。

参考资料:for循环–百度百科

参考技术A

for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环一般形式为:for(单次表达式;条件表达式;末尾循环体)中间循环体;。

执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号可以省略,执行完中间循环体后接着执行末尾循环体  。执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。

for循环实例:

# include <stdio.h>

int main(void)

int n = 0;

int i = 0;

int m = 1;

int sum=0;

printf("请输入n的值:");

scanf("%d", &n);

for (i=1; i<=n; ++i)

m = m * i;

sum = sum +m;

printf ("sum = %d\\n", sum);

return 0;

假如 n=4,当 i=1 时,m=1,sum=1。当 i=2 时,m=1×2,sum=1+1×2。当 i=3 时,m=1×2×3,sum=1+1×2+1×2×3。当 i=4 时,m=1×2×3×4sum=1+1×2+1×2×3+1×2×3×4。

扩展资料

for循环注意事项:

1、for循环的代码不仅可以写一句,也可以写多句(保证第二部分的返回值是布尔值)

2、for循环的三个部分都可以省略。第一部分省略表示不初始化;第二部分省略表示不判断,默认值为true;第三部分省略表示省略后什么也不执行。

3、小循环在外,大循环在内、

4、如果for循环有条件判断,可以将条件放到for循环外。

5、 for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句, ";"不能缺省的原因是编译格式如此,缺省了编译器不认识而会报错。

参考资料来源:百度百科——for循环

参考技术B

以题目中的程序为例子:

for(i=0;i<10;i++)
a+=i;

for循环里面的三个参数为三个表达式:

第一个控制表达式”i=1“在循环开始时执行,且只执行一次。

第二个控制表达式必须是一个逻辑表达式,且在每次循环迭代开始重复前计算。

第三个控制表达式”i++“在每一次循环迭代结束时执行。

只有第二个逻辑表达式为真时,语句块内的语句才执行。

扩展资料:

for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。

参考技术C 你只要搞清楚for循环3个语句的含义应该就懂了
第一个是初始化,第二个是条件语句,第三个是自处理语句;
循环时第一个语句只使用一次,然后判断是否满足第二个语句,满足则进入循环体运行a+=i,然后i自加1,再判断是否满足第二个语句,满足则进入循环体运行a+=i,一直到i不满足i<10了,循环跳出。
开始时,i=0,开始循环。假设a初始化为0,
第一步:a+=i;然后i++,a=0,i变成1,1<10,继续循环;
第二步:a+=i;然后i++,a=1,i变成2,2<10,继续循环;
。。。
第九步:a+=i;然后i++,a=36,i变成9,9<10,继续循环;
第十步:a+=i;然后i++,a=45,i变成10,10<10不成立,循环结束追问

每一次循环是上一次循环结果累加的吗?

追答

这里有+=这个符合运算符啊,a +=i就是 a = a+i, 你先了解一下吧

本回答被提问者采纳
参考技术D

1、for是C语言中的一个关键字,主要用来控制循环语句的执行。


2、下面举例说明for语句的使用方法:

int i;
for(i=0; i<3; i++)   
// i=0是初始化部分;i<3是循环判断条件部分(当满足此条件时才进入执行for循环中的语句);i++是执行完循环体语句后的操作

    printf("HelloWorld");

// 上面的for语句就是控制输出3次HelloWorld

以上是关于c语言语句理解的主要内容,如果未能解决你的问题,请参考以下文章

c语言中的do while语句怎样理解

C语言中for循环怎么理解?

c语言的for语句中,第三个表达式为k++,k++该怎么理解?

C语言中三个if语句的嵌套怎理解

C语言switch语句的理解

C语言中的一个指令语句,不理解其意思,求详解