您的位置:首页 > 编程语言 > C语言/C++

C语言的相关简短笔记

2015-04-24 23:40 183 查看
字符串操作

1. 拷贝

最好优先选择memcpy 效率,稳定性比较高

优先性:

memcpy > snprintf> strncpy > sprintf > strcpy

2. 查找

最好优先性选择memmem 效率,稳定性高

声明变量时需要初始化的几个:

字符串 数组 应该用 memset进行初始化

指针应指向NULL

变量应初始化为0

3、下面,我们再来看一个交叉编译的事情,下面的两个文件可以编译通过吗?如果可以通过,结果是什么?

file1.c
int arr[80];


file2.c
extern int *arr;
int main()
{
arr[1] = 100;
printf("%d/n", arr[1]);
return 0;
}


参考答案:该程序可以编译通过,但运行时会出错。为什么呢?原因是,在另一个文件中用 extern int *arr来外部声明一个数组并不能得到实际的期望值,因为他们的类型并不匹配。所以导致指针实际并没有指向那个数组。注意:一个指向数组的指针,并不等于一个数组。修改:extern int arr[]。(参考:ISO C语言 6.5.4.2 节)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: