如: char* str = "hello"; char str[6] = "hello";
对于一个记录常量字符串的字符指针来说,指针指向的内容不可以改变,指针的指向可以改变;对于一个记录常量字符串的字符数组来说,指针指向的内容可以改变,指针的指向不可以改变;对于一个记录动态内存的字符指针来说,指针指向的内容和指针的指向都可以改变;在Linux系统中,一般都采用虚拟内存管理技术来进行内存空间的管理,即:每个进程都可以有0~4G-1的地址空间(虚拟的,并不是真实存在的),由操作系统负责建立虚拟地址到真实物理内存/文件的映射,因此不同进程中的虚拟地址看起来是一样的,但是所对应的真实物理内存/文件是不一样的; 其中0~3G-1之间的地址空间叫做用户空间,而3G~4G-1之间的地址叫做内核空间,一般用户程序都运行在用户空间,不能直接访问内核空间,但是操作系统的内核提供了相关的API函数可以访问内核空间;
命令:$ time ./a.out 结果: real - - - - - - 总执行时间; user - - - - - -用户空间执行时间; sys - - - - - - -内核空间执行时间;
作业:
int file_size(char* name) { int len = 0; FILE* fp = fopen(name, "rb"); if(NULL == fp) { return -1; } //获取文件大小的方法,要求掌握 fseek(fp, 0, SEEK_END); len = ftell(fp); fclose(fp); return len; }