c语言中赋值的正确语法是什么?

Python018

c语言中赋值的正确语法是什么?,第1张

对于如下说明,语法和语义都正确的赋值是:C、s=&a[1];

A、语法上正确(可能引起编译警告)。若非静态变量或全局变量,否则s没有被初始化,是随机值,*s的值无法确定,即没有确定的语义;若是静态变量或全局变量,s被初始化为0,对地址0的解引用操作没有确定的语义。

B、错误。理由同上,对随机地址的操作不具有确定的语义(s[0]等价于*s)。另外对随机地址单元的写操作(赋值)引起的后果不可预料。

C、正确,将a[1]的地址赋值给指针s。

D、语法错误,c(int)和a(const int*)的类型不匹配,会引起编译错误。

扩展资料:

将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。

例如,给变量a赋值一个数为12,则格式为:a = 12 [注意:变量(即a)只能是一字母,而赋予的值可以是一个式子,当它是式子时,a的值就是这个式子的结果。

A)x=y==5;

// 正确,x=y==5等价于x=(y==5), ==号是判断两端是否相等,若右边等于左边,则y==5表达式的值为1,若不等,则为0,假如相等,就等于说把1赋值给了x,若不等就是说把0赋值给x.=号是赋值,右边的值给左边,==是判断,右边是否等于左边.==的优先级高于=,故先算==再=.故x=y==5同等于 x=(y==5)

B)x=n%2.5;

//错误,%是模除符号,就是求余数用的,用这个符号,两边必须是整型,说白了两边都得是整数,不能是小数.

C)x=n=1

//很明显,缺少分号,一个语句的最基本要求就是,以分号结束.如果做为一个表达式是合法的,x=n=1同等于 x=1,n=1

D)x=5=4=1;

//错误,赋值的最基本要求,被赋值的一定是变量,不能是常量,也就是说左边是变量,右边可以是常量,或者已经被赋值的变量, 因为5 4 都不是变量,故错误.

getchar

由宏实现:#define

getchar()

fgetc(stdin)。getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.

所以输入w、回车后,缓冲区中有两个字符,下一次循环读取的是回车,getchar不等待用户输入,就直接返回,显示两行aaa,同理,如输入ww、回车,会显示三行aaa,至于为什么输入qq才读到一个q,不知道是什么问题。