摘要:
1、数组不能相互赋值,如:a[5]=b[5] 数组不能作为函数的返回值如:void test(int a[5]) {...}2、如果数组名放在=号的右边,那么这个数组会自动转换成数组首元素的指针。这样就可以解释上面为什么a[5]=b[5]是错误的赋值方式了,因为右边的b[5]自动转换成了指针,不能将指针赋值给数组。比较: printf(%s ,str);和scaf(%s,&str);前一个自动转换成指针进行传递,而第二个是输入的函数表达式需要使用&符号表示输入传递给一个指针类型。3、看这样的调用:int array[5] = {};foo(array); 这里的使用方法不会报错 阅读全文
摘要:
1、整形、字符、布尔、浮点,这些可以成为基本数据类型。他们和字符串和数组有什么区别? 字符串和数组是一种复合型数据类型,他们由基本数据类型组成,一方面可以从整体上当做一个数据来使用,另一方面也可以分别访问它的各个组成单元。 函数名是什么的抽象?是多条语句组合起来的抽象表达。 结构体是一种数据类型的组合和抽象。2、int main(void){ complex_struct{int x,y;} z; int x; } z.x和x这两个x有什冲突吗,编译器是怎么区分这两个x的?变量z的成员变量x总是用"."这个符号来访问的,他们属于不同的命名空间。结构体中的成员变量xy的存储空 阅读全文