Clang需要注意的一些不同于其他语言的地方

1、C语言需要include对应的库的头文件,比如使用printf的时候就需要include stdio.h。库的头文件里面有函数的声明,这样编译器就可以判断函数调用的对不对了。
2、C语言里面没有字符串,只能使用字符数组来模拟字符串,如果模拟的话字符数组需要比里面所有字符还要多一位,因为最后需要添加一个“哨兵字符”。&switch检查不了任何数组,包括字符数组。
3、C语言中没有布尔值,只能用不为零的值和0两个值来模拟布尔值。
4、C语言中不会记录数组的长度,可以想象存储在内存中的数组是多么赤裸裸的样子。
5、C语言执行某个函数会有返回值,0的话代表执行成功,非0的话代表执行失败。然而在其他语言中,执行语句不会有返回值,只会当异常发生时抛出异常。
6、c语言中有指针,指针有点像对象引用。使用一个变量指针就相当于使用那个变量的复制品,不过复制品只能用*(pointer variable)的形式进行操作。
7、c语言中的数组在参数传递的时候不是copy值的,其实是退化成指针传递过去,但是函数中的参数声明不是声明一个指针啊,摔!
8、虽然《head first c》里面说sizeof(msg)结果是指针的长度,这边的msg是传递到函数中的字符数组!然而为啥在main函数里面长度好好的,这边长度就不对了,难不成main函数里面的msg不是指针?
突然想起来当年上C语言课时候老师貌似提到过,在main函数里面的msg变量会保存字符串长度,但是传递到函数之后就丢失了么?

标签: none

添加新评论