C语言指针符合*和&

Python013

C语言指针符合*和&,第1张

(1) 这个要看你seqList结构体元素data数组的类型,应该是: int *data[n]

(2) 你这里是主程序申请了一个结构体指针变量Li,然后在函数CreateList() 中修改这个指针变量的值,肯定需要传入这个变量的地址,因此函数形参就变成了seqList **L (可以理解为指针的地址),不然如果是seqList *L的话,函数内部只是修改了局部变量L的值,对主函数中的Li无影响;你在看一下函数形参传值和传地址的区别就明白了

B

C

=左边必须是左值(可以被赋值的值,也被称作变量表达式,变量、数组表达式、指针表达式的值都是左值。但是算数、逻辑运算表达式、函数表达式的值不是左值所以不能被赋值)所以A、D错误

C是逗号表达式。(逗号表达式的值和类型都由逗号右边的表达式决定,就是说连续逗号表达式比如a,b,c,d等价于a,(b,(c,(d)))

-

赋值仅仅是一种表达式,也有值和类型a

=

1。的值是1类型是int,所以完全可以赋值给另一个int类型变量b

=

(a

=

1)也就是b

=

a

=

1。不存在不可以连续赋值的说法。

括号表达式也是一样。只要有类型和值就能赋值给对应的变量这是赋值的原则。

B和C的写法在标准C编译器上都是可以编译通过的。