`
kenby
  • 浏览: 716805 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
1. strlen(char *str) 返回str中除去结束字符\0的字符数 2. 系统对所有""号内的字符串,无论是全局的和局部的,都会在字符串区域开辟一块内存。例如: char *p = "hello"; 系统为hello开辟一块内存,并把p指向这块内存。3. 初始化动态分配的字符串不能使用=,应使用strcpy,例如把world追加到hello的末尾: // 正确的方法 char *p = (char *)malloc(11); char *str = "world"; strcpy(p, "hello" ...
Lecture 5 Memorky Layout and Allocation使用静态内存分配方式的不一定都是静态变量, 也可能是全局变量但静态变量一定是静态内存分配int a;int b = 1;static int c; //静态全局变量:只在文件内使用static int d = 1;char *str = "str";static char *str1 = "str1";void func() { int e; int f = 1; static int g; //静态局部变量:只在函数内使用, 函数执行完后并不释放, 可供下次调用函数时使用 s ...
1.intermediate representation,IR,中间代码表示2.literal table,常数表3.front end,前段4.back end,后端5.register transfer language,RTL,寄存器传递语言5.rtl's expression,RTX,rtl表达式

fgets函数的理解

    博客分类:
  • c
fget函数的原型如下:char *fgets (char *buf, int n, FILE *fp) 功能:从文件流读取一行,送到缓冲区,使用时注意以下几点: 1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到的数据, 注意的是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。   2.每次调用,fgets都会把缓冲区的最后一个字符设为 \0,这意味着最后一个字符不能用来存放需要的数据,    所以如果有一行,含有 LINE_SIZE 个字符(包括换行符),要想把这行读入缓冲区,请把参数 n 设为 LINE_SIZE+ ...
/* 注意,形如2[3]表示2的3次方 */实例一:38414.4 的IEEE浮点数表示法(double): double型的指数域有11位,所以偏置值为 2[11-1]-1 = 1023 38414.4 = 1001011000001110.0110011001100110011001100110011001101 = 1.0010110000011100110011001100110011001100110011001101*2[15] //0.4=0.5*0+0.25*1+0.125*1+0.0625*0+……没完没了,但小数域只需52位,整数部分已经有了15位,故小数部分只需取37 ...
c语言类型转换的根本原则是必须保证数据不能丢失!在这个基础上,总结两个基本原则. 1)  若两种类型的比特数不同,转换成比特数高的类型如:-1 > (unsigned char)1会把(unsigned char)1转换成int型,变成1,表达式的值为false 2) 若两种类型的比特数相同,且一种有符号,一种无符号,则转换成无符号类型。如:-1 > (unsigned int)1会把int型的-1转换成(unsigned int),-1的二进制11111111111111111111111111111111, 无符号数等于4294967295, 所以表达式的值为 tr ...
个人认为SSD6 Exercise 1是卡内基有史以来最经典的题目,本来想写一篇大家都看得懂的长篇大论,无奈时间不够,只好延续以往记流水帐的风格,把心得一条一条列出来。 心得1.从汇编的层次去理解c语言传值和传地址的区别.看实例 intmain(intargc,char*argv[]){ intstart=10; intstride=3; intkey3=-1; intkey4=777; char*msg1; process_key34(&key3,&key4); //传地址 msg1=extract_message(start,stride); ...
1.贵公司对这项职务的工作内容和期望目标为和?有没有什么部分是我可以努力的地方?  2.贵公司是否有正式或非正式教育训练?  3.贵公司的升迁管道如何?  4.贵公司的多角化经营,而且在海内外都设有分公司,将来 ...

fork的执行

先看看一段fork的程序   int main() {      pid_t pid;        语句 a;            pid = fork();      语句 b; }   1.当程序运行到 pid = fork()时,这个进程马上分裂(fork的中文意思)成两个进程,我们称为父进程和子进程,子进程是父进程的副本,副本的意思是子进程把父进程的数据空间,堆和栈都复制一遍给自己用,这要求在内存给子进程分配和父进程同样大的存储空间,这样,父,子进程拥有相同的数据,但不会共享存储空间,他们只是共享正文段。 2.apue2这样说fork的执行:fork函数被 ...
1.判断文件类型的两种方法 1):使用宏函数 struct stat buf; lstat( "/home" ,buf); if (S_ISDIR(buf.st_mode)){    printf( "目录文件" ); } 2):使用st_mode和S_IFMT的与运算结果 struct stat buf; lstat( "/home" ,&buf); if (buf.st_mode&S_IFMT==S_IFDIR ...
<h1 id="h">test</h1>var h1 = document.getElementById("h");如果要添加 class="blue bold",有三种方法1.h.setAttribute("class","blue bold");2.h.setAttribute("className","blue bold");3.h.className = "blue bold";第1种方法只支持firefo ...
*元素-1<h1id="h1">AnHTMLDocument</h1>varelement=document.getElementById("h1")element.nodeType = 1element.nodeName = H1element.nodeValue = null*文本-3varelement = document.getElementById("h1") vartext = element.firstChildtext.nodeType = 3text.nodeName = #texttext ...
包括3个文件:AvlNode.h AvlTree.h和main.cpp1.节点类的定义AvlNode.h #ifndef AVLNODE_H#define AVLNODE_H#include <iostream>using namespace std;template <class T> class AvlTree; //声明AvlTree类template <class T>class AvlNode{public: friend class AvlTree<T>;//友元类 //构造函数 AvlNode():left(NULL),right ...
atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。    s格式为:符号 数字.数字 E符号 数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h atoi()将字符串转换 ...
1.中缀表达式转后缀表达式<colorscheme colors="#ffffff,#000000,#1c1c1c,#333399,#00e4a8,#ffcf01,#ff0000,#3333cc"></colorscheme> 中缀:a/(b-c)+d*e后缀: abc-/de*+转换步骤:(1)从左到右扫描中缀表达式,遇到#转(6);(2)遇到操作数直接输出;(不进栈)(3)遇到“)”,则连续出栈输出,直到遇到“(”为止(“(”出栈但不输出);否则(4)若是其它操作符,则与栈顶的操作符比较优先级;若优先级小于栈顶的优先级,如a*b+c,说明*号所 ...
Global site tag (gtag.js) - Google Analytics