当前位置:首页 » 编程语言 » c语言局部变量初始化逗号作用
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言局部变量初始化逗号作用

发布时间: 2022-07-21 11:45:25

❶ 在c语言中逗号运算符有什么用呢

等下。。答错了。。还需要理解一下神马是逗号表达式。。我前面说的和uuyyhhjj与delta_charlie的意思一样,但其实我们都搞错了。你可以自己把我们的例子都运行一下,看看是不是这样。下面我感觉应该是我正确的理解。
逗号表达式是所有运算符中优先级最低的,比赋值运算符还要低。他的作用就是把每个表达式都算一遍,并且把最后一个表达式返回的值作为逗号表达式的值。(把其他的都不管了)

像你说的那个,如果是
x=200,500;
(没有括号),x就会等于200,然后上面整个式子的值是500。

但是有括号的话, (200,500) 就是一个单独的式子,他的值是500,所以x=(200,500)最后赋值给x就是500

举几个例子,

x=(21,22,23,24,25);
这个里面,先算括号里的,前面的21到24算过后都被丢弃,括号里的表达式的值是25。之后执行赋值运算,x的值就变成括号里表达式的值,25了。
如果编译
int x;
int a;
x=(21,22,23,24,25);
cout<<"x="<<x<<endl;
会输出
x=25

x=21,22,23,24,25;
这行整个是一个表达式。
逗号运算符会分别计算表达式x=21、22、23 、24、25(单独一个数字也可以叫做表达式)。
然后他会用最后一个表达式作为逗号表达式的值。所以整个式子(整个一行)的值是25。但是因为这个值并没有返回给别的变量,他就也被丢弃了。
如果编译
int x;
x=21,22,23,24,25;
cout<<x;
输出是21。

a=(x=21,22,23,24,25);
这个里面,除了给x赋值,它又把逗号表达式的值25赋给a。
如果编译
int x;
int a;
a=(x=21,22,23,24,25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;

会输出
x=21
a=25

a=(x=21,22,23,24,x*25);这个里,赋值给x之后又利用x计算了逗号表达式的值,21*25,最后把这个值赋给a
如果编译
int x;
int a;
a=(x=21,22,23,24,x*25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;
会输出
x=21
a=525

简单来说,逗号的作用就是执行每一个表达式,然后用最后一个表达式作为他它的值。
看这个可能可以帮助你理解 http://blog.csdn.net/great_ghoul/article/details/1779768
如有疑问,欢迎您的追问。

❷ c语言,数组或者结构体初始化后面多加一个多余的逗号会使得益处发生,求解,谢谢

对于数组来说如果像下面这要多加一个逗号结果不会变:

int a[]={1,2,3,};
int a[]={1,2,3};

上面这两条语句是等效的,其中第一种是计算机发展早期非常古老的一种写法,这么写的目的是让以后的程序维护人员少输入一个逗号,现代的C语言中一般已经不这么用了。

对于结构体来说如果像下面这样多加一个逗号结果也不会变,但是没有什么意义,一般不建议这么写:

struct a {
int id;
int money;
} mya={10,100};

struct a {
int id;
int money;
} mya={10,100,};

❸ C语言里的逗号的使用方法

C语言提供一种特殊放入运算符----逗号运算符
表达式1,表达式2
逗号表达式的求解过程是:先求表达式1,再求表达式2.整个逗号表达式的值是表达式2的值,如表达式“3+5,6+8”的值为14。又如,逗号表达式:“a=3*5,a*4”,赋值运算符的优先级别高于逗号运算符,因此应先求解a=3*5.经计算和赋值后得到a的值为15,然后求解a*4,得60.整个逗号表达式的值为60.
逗号表达式的一般形式可以扩展为
表达式1,表达式2,表达式3,。。。表达式n。它的值为表达式n的值
逗号运算符是所有运算符中级别最低的。

❹ c语言中局部变量初始化是什么意思,怎么初始化

“局部变量初始化”是指在使用这个局部变量前,要对其进行初始化。这是因为局部变量是从内存堆中分配的,用完就还给内存堆,所以被分配的局部变量并不一定是0,而很可能是其他地方用过的一个值,因此在使用这个变量之前,要对它进行显示初始化。初始化可以用两种方式(假设初值为0):

  1. 声明变量是赋值:int val=0;

  2. 在使用前赋值:

    int val;

    .... //其它代码

    val=0;

    ....//后面开始使用变量val

❺ 请问C语言里逗号运算符有什么用

确实,如果前面那些运算是纯粹的运算的话,是没用的。
如int a = 2, 3, 4;
那么2,3显然是没用的。
但如果前面的运算有些"side effect"的话,逗号运算符就显示出一些简化代码的功效了。
比如:
int k = ++a, ++b;
这句话用(b+1)定义了k,同时把a和b都加了1。

❻ c语言中逗号的作用,详细点

在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
假设b=2,c=7,d=5,
a1=(++b,c--,d+3);
a2=++b,c--,d+3;
对于第一行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是d+3,为8,所以a1=8。
对于第二行代码,那么也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)所以最终表达式的值虽然也为8,但a2=3。
逗号运算符的优先级最小

❼ C语言中,声明变量和初始化变量有什么作用

c语言中,变量只有先声明,才能使用,这样避免编程时产生不必要的错误,一位不同类型变量的存储格式和长度都不同,所以字节长度不同,声明变量可以让计算机知道你更需要用什么样的格式存储变量,从而高效稳定地运行程序。

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

(7)c语言局部变量初始化逗号作用扩展阅读:

C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。

与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。

❽ c语言中逗号指的是什么意思

C语言中的逗号有两种意思:

1、表示"分隔号"的意思,就和语文中的逗号一个意思;

2、表示"逗号运算符"的意思,用它将2个表达式连接起来.例如:

3+5,6+8:就称为逗号表达式,又称为"顺序求值运算符"。逗号表达式的一般形式为表达式1,表达式2。
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如:上面的表达式"3+5,6+8"的值是14。

(8)c语言局部变量初始化逗号作用扩展阅读:

运算符号:

比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移。例如,将 11100011 右移 3 比特,算术右移后成为 11111100,逻辑右移则为 00011100。

因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。

运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。

数据类型:

C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。

常量与变量:

常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。

标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。

数组:

如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。

网络-C语言

❾ c语言,逗号的用处和使用方法………………

c语言提供一种特殊放入运算符----逗号运算符
表达式1,表达式2
逗号表达式的求解过程是:先求表达式1,再求表达式2.整个逗号表达式的值是表达式2的值,如表达式“3+5,6+8”的值为14。又如,逗号表达式:“a=3*5,a*4”,赋值运算符的优先级别高于逗号运算符,因此应先求解a=3*5.经计算和赋值后得到a的值为15,然后求解a*4,得60.整个逗号表达式的值为60.
逗号表达式的一般形式可以扩展为
表达式1,表达式2,表达式3,。。。表达式n。它的值为表达式n的值
逗号运算符是所有运算符中级别最低的。

❿ 在c语言中,局部变量初始化是什么意思,要怎么初始化

按作用域,C语言一般分为全局变量和局部变量。全局变量一旦声明就被默认初始化为适当类型的0,而局部变量被声明的时候其值是不可预料的,所以为了后续程序的正常使用,最好将其认为地初始化,否则有时会有灾难性的后果!
第二个问题,例如:
int main()
{
char a;//没有被初始化,可以在后面初始化,一般没危险性
char *p = &a;// 已初始化,指针p被赋予变量a的地址
char *q;//没有被初始化,相当危险!因为指针q是局部变量,此时的值是不确定,可能指向系统的重要数据,一旦在此变量被初始化前遇到类似下面的语句,就危险了:
q = &a;
}