上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 93 下一页
摘要: inline int static_test(){ static int i =0; ...}inline 代表编译时代码拷贝,也就有多份副本了,但在VC中测试,i只有一份副本,那么编译器是如何实现的:1.代码拷贝不一定是c代码的拷贝吧,可以是编译后的汇编代码的拷贝。而函数在代码段,变量则在数据段。拷贝的只是函数部分。静态变量在函数部分保存的仅仅是该变量的地址。2.static变量不是放在栈里的,是放在静态数据区.和全局变量存放在一起.不能将它和局部变量混为一谈。 阅读全文
posted @ 2011-06-22 00:09 dzqabc 阅读(1522) 评论(0) 推荐(0) 编辑
摘要: 1. 字符串入门 字符串也称字符串字面量,是用一对双引号括起来的字符序列。 我们也许经常会遇到字符串特别长的情况,在C#中,我们一般会用@符号来表示。 Console.WriteLine(@"Hello World");但是在C中,我们会这样来写:int main(){ printf("Hello " "world"); return 0;}还记得我曾经讲的最多的一句话就是,把字符串当做字符数组... 阅读全文
posted @ 2011-06-17 00:52 dzqabc 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 1. 指针的来源 在当代,大多数的现代计算机都会把内存分割成字节,每个字节都有着其唯一的地址。可执行程序由代码和数据两部分构成,而程序中的每个变量都占有着一个或多个字节,也就是说,每个变量都有着自己的地址。而这个就是指针的来源。 其实每个地址就是一个数,但是我们却不能用数来表示地址,存储地址,我们需要用指针变量。例如int *p = i,我们就可以说p是指针变量,存储着变量i的地址。 那么我们说... 阅读全文
posted @ 2011-06-17 00:47 dzqabc 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 1. 数组作为函数参数 函数是我们学习程序设计语言最基本的东西了,我在此不再赘述。只讨论一种特殊情况,就是数组作为函数的参数传递。 我们都知道,其实在传递数组的时候,实际上是传递了数组首元素的指针。明确了这一点之后,我们就可以思考下面的问题。 既然他只是传递了数组首元素的指针,那么他必然无法知道整个 阅读全文
posted @ 2011-06-17 00:44 dzqabc 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 1. 数组大小 我相信,在C#/Java中,更多的人愿意用List<T>来取代数组,一方面是List提供了较多的方法,另一方面也无需我们去指定数组的大小。 那么在C语言中,我们既然需要必须指定数组的大小,而一般来讲,很多数组大小事我们无法确定并且经常会发生变化的,那么我们最好的方式就是用宏定义来限定数组的大小。#define SIZE 10int main (void){ int a[SIZE]... 阅读全文
posted @ 2011-06-17 00:39 dzqabc 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 1. typedef 在前文中,我们用宏定义来定义了一个BOOL类型,那么现在就用更专业的方式来定义类型。typedef int Bool;int main (void){ Bool flag=1; if(flag) { printf("True"); } else { printf("false"); }}typedef 的作用就是类型定义(Type Definition)。类型定义有以下三个... 阅读全文
posted @ 2011-06-17 00:38 dzqabc 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1. 编译和链接 将程序转化为机器可执行的代码,C语言分为三个步骤: A. 预编译。程序首先会交给预处理器,预处理器执行以#开头的指令,然后给程序添加指令,或者修改指令。 B. 编译。修改后的程序进入编译器,编译器会把程序翻译成机器指令(也就是目标代码),但是这样的程序还是不能执行的。 C. 链接。链接器把由编译器产生的目标代码和其他所需的代码整合到一起,这些附加代码包括程序中用到的库函数。这样... 阅读全文
posted @ 2011-06-17 00:24 dzqabc 阅读(260) 评论(0) 推荐(0) 编辑
摘要: #include"iostream"#include"string"using namespace std;int main(){ string str; while(getline(cin,str)) { string::size_type k; while((k=str.find("you"))!=string::npos){ str.replace(k,3,"we"); } cout<<st... 阅读全文
posted @ 2011-06-13 07:38 dzqabc 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 1.定义函数模板 2.使用模板函数 输出结果 3.确定返回的参数 若两个参数不正确,或者不支持模板定义的特性,编译时则会出错 4.多个模板参数 示例 返回值是T1,所以返回是int类型,结果是42,出错了 定义3个参数,第3个参数用于表示返回值类型 测试 返回正确的42.1 5.模板函数重载 重载函 阅读全文
posted @ 2011-06-13 01:05 dzqabc 阅读(2049) 评论(0) 推荐(0) 编辑
摘要: 在string类之间进行复制没有什么问题。但是要拷贝到内存中时就要注意。一定要在string取出的长度上加1。如下char buf[256];std::string str = "1234567890";memcpy( buf, str.c_str(), str.length()+1 );这样才能拷贝到字符串的结束符‘0’。要不就拷贝不到。string的length函数只计算有效字符的长度。如同C... 阅读全文
posted @ 2011-06-11 02:13 dzqabc 阅读(14340) 评论(0) 推荐(1) 编辑
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 93 下一页