C语言最大的特色便是指针的引用。很遗憾,指针一直是我的弱点。如果这么算起来的话,那么我应该算是不懂C语言的人。
工作这么多年,说起这个还是很惭愧的。
C语言中的指针引用,最让人疑惑(或者是我最疑惑)便是字符串与数组指针的引用。
定一个字符串:char *ptr = "I am shamed".这种做法是正确的。
因为字符串"I am shamed"把头指针给了ptr,这到是无可厚非。
而让人疑惑的便是%s的打印,只要给头指针便能打全。真是神奇。
再说一例:
int open_proc_file(char *filename)
{
FILE fd;
fd = fopen(filename, "r");
fclose(fd);
return 0;
}
调用时只要使用open_proc_file("/tmp/tmp.txt)即可。实际便是字符串指针的传递。即在实参中把/tmp/tmp.txt的指针给形参filename.最终到fopen时,仍然是字符串的头指针。
而fopen的第一个参数,要的便是字符串的头指针。
真是神奇的C语言呀。
而对于数组,只要记住一条,那便是定义一个数组buf[20],而buf就是指数组的头指针。