小知识点

1.对于一个二维数组指针int(*p)[4] = a[3][4];

*(p+2) ==a[2];

p+2 == a+2;

因为p指向行,存放的是第二行的行地址,而a[2]存放的是第二行首元素的地址。但是二者的值是相同的。

2.ch = getchar() ; putch(ch); 读取缓冲中的现存的第一个字符,或者将要从键盘上敲入的字符。变量ch存放getchar获得的字符,给putchar输出

3.字符数组的初始化注意点。

 char*str[10] ;

str = “hello”;(错)

char * str;

str ="hello";(正确) ,让str指向文字常量区的字符串hello

char   str[]={“Hello!”};                    对
char   str[]=“Hello!”;                        对
char  str[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};    对
char   *cp=“Hello”;                          对
int    a[]={1,2,3,4,5};                       对
int   *p={1,2,3,4,5};                        错

char   str[10],*cp;
int    a[10],*p;
str=“Hello”;      错
cp=“Hello!”;       对
a={1,2,3,4,5};   错
p={1,2,3,4,5};   错

函数指针

4.vim编辑文件时,如果用wq保存退出文件,会在文件结尾加上一个 字符。下次再往文件里面写入字符时会换行。q退出不会添加 .

5.

6.快速创建1G的文件:用fseek(buf,1,1024*1024*1024-1,fp)函数,可以使文件指针指向文件后面,但不能指向文件前面。就是让文件指针向后偏移超出文件字节的字符。这个方法可以创建一个1g的文件,快速的很。但是往文件里面写.。入1G的‘A’需要好长时间。

7.只在文件内部使用的函数,定义是定义为static 并且最好不要在.h文件里面进行函数声明。

8.计算机最多同时运行128pid,每个进程拥有的资源是32M,进程之间可以互相访问资源,但是独立拥有资源。但是实际的是同事运行30几个进程计算机就快受不了了。

 9.链表操作中NULL不能有next和prev指针。

10.opendir 必须一个DIR的指针指向这个函数,函数参数是要打开路径的名字字符串。

getcwd获取当前文件路径。

先保存当前目录,在执行下一步

chdir 改变目录的路径。参数是新的路径名字。可以改变使用opendir返回值存放变量的值。改变程序读取的路径。

readdir 可以让程序到指定的路径里面去读取文件。参数是opendir的返回值指针,它指向了新的路径。

程序运行完,要返回目录。

 11.重定向:./a.out  < a.c >b.txt 。这句话中<为输入重定向 a.c 文件必须存在。b.txt 即使存在也会先被清空,然后再重定向到b.txt。

原文地址:https://www.cnblogs.com/vhwuln/p/3554292.html