C语言的相关简短笔记
2015-04-24 23:40
183 查看
字符串操作
1. 拷贝
最好优先选择memcpy 效率,稳定性比较高
优先性:
memcpy > snprintf> strncpy > sprintf > strcpy
2. 查找
最好优先性选择memmem 效率,稳定性高
声明变量时需要初始化的几个:
字符串 数组 应该用 memset进行初始化
指针应指向NULL
变量应初始化为0
3、下面,我们再来看一个交叉编译的事情,下面的两个文件可以编译通过吗?如果可以通过,结果是什么?
file1.c
file2.c
参考答案:该程序可以编译通过,但运行时会出错。为什么呢?原因是,在另一个文件中用 extern int *arr来外部声明一个数组并不能得到实际的期望值,因为他们的类型并不匹配。所以导致指针实际并没有指向那个数组。注意:一个指向数组的指针,并不等于一个数组。修改:extern int arr[]。(参考:ISO C语言 6.5.4.2 节)
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 节)
相关文章推荐
- c语言学习笔记 指针相关
- C语言相关笔记
- 《objective-c程序设计》笔记——C语言相关篇
- C语言相关 实习笔记
- stm32的C语言相关笔记
- C语言快速学习笔记001-相关语法
- HTML笔记三,表单相关元素和属性
- JSTL学习笔记3-----URL相关标签的使用
- c语言学习笔记(01):利用递归分解整数
- 金蝶ERP二次开发笔记(二)----ID相关处理
- 【C语言学习笔记】基础语法及基本运算
- 个人C语言笔记
- 【学习笔记】【C语言】指向函数的指针
- 第01天C语言(00):笔记总结
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
- 【黑马程序员】Objective-C语言学习笔记之对象的创建、使用和方法调用(三)
- C语言学习笔记(七) -字符串 String
- iOS学习笔记-135.RunLoop03——Runloop相关类1_基础
- Flex 学习笔记 Array相关操作
- 流媒体技术笔记(DarwinStreamingServer相关)