小时候...总走丢
发表于 2016-1-29 19:42:29
看看,看看
明年今日
发表于 2016-2-10 15:14:19
学习
辅助初学者
发表于 2016-2-10 21:54:41
感谢分享!努力学习!
mzbzhchh
发表于 2016-2-11 08:29:17
这个地方一直搞不懂
loo
发表于 2016-2-20 12:30:33
{:5_105:}
cococ
发表于 2016-2-21 01:16:42
额,看不懂,只能打个酱油- -
793856930
发表于 2016-2-25 22:09:57
感谢楼主分享!
shiwei
发表于 2016-2-26 10:25:54
谢谢分享
wfmyv
发表于 2016-3-19 18:22:03
支持小鱼,顶。
trackming
发表于 2016-3-19 23:47:27
点赞
trackming
发表于 2016-3-19 23:48:41
点赞
676835848
发表于 2016-4-17 15:36:08
adaafsdf
zhuozi
发表于 2016-4-17 19:11:50
嗯
zhuozi
发表于 2016-4-17 19:31:23
3.6存取效率的比较
char s1[] = /"a/";
char *s2 = /"b/";
a是在运行时刻赋值的;而b是在编译时就确定的;但是,在以后的存取中,在栈上的数组比指针所指向的字符串(例如堆)快。 比如:
int main(){
char a = 1;
char c[] = /"1234567890/";
char *p =/"1234567890/";
a = c;
a = p;
return 0;
}
对应的汇编代码
10: a = c;
00401067 8A 4D F1 mov cl,byte ptr
0040106A 88 4D FC mov byte ptr ,cl
11: a = p;
0040106D 8B 55 EC mov edx,dword ptr
00401070 8A 42 01 mov al,byte ptr
00401073 88 45 FC mov byte ptr ,al
第一种在读取时直接就把字符串中的元素读到寄存器cl中,而第二种则要先把指针值读到edx中,再根据edx读取字符,显然慢了。
这个地方有些不懂 a是在运行时刻赋值的;而b是在编译时就确定的;但是
okhaohao116
发表于 2016-4-18 23:59:37
0
fishlpc
发表于 2016-5-18 21:35:01
谢谢楼主分享
长渊
发表于 2016-5-19 19:47:45
多谢楼主
99101553@qq.com
发表于 2016-8-21 08:25:03
{:5_92:}
学习一下
newind
发表于 2016-9-4 14:49:50
写的非常好
Yo才俊Miao
发表于 2016-9-4 14:58:41
学习知识{:10_282:}
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15