一道很有典型的面试题目
来源:互联网 发布:java 时间戳的长度 编辑:程序博客网 时间:2024/06/10 07:49
对字符串进行sizeof操作的时候,会把字符串的结束符“\0”计算进去的,进行strlen操作求字符串的长度的时候,不计算\0的。
数组作为函数参数传递的时候,已经退化为指针了,Func函数的参数str_arg只是表示一个指针,那个100不起任何作用的。
下面程序的输出结果为多少?
- void Func(char str_arg[100])
- {
- printf("%d\n",sizeof(str_arg));
- }
- int main(void)
- {
- char str[]="Hello";
- printf("%d\n",sizeof(str));
- printf("%d\n",strlen(str));
- char *p = str;
- printf("%d\n",sizeof(p));
- Func(str);
- }
输出结果为:6 5 4 4
对字符串进行sizeof操作的时候,会把字符串的结束符“\0”计算进去的,进行strlen操作求字符串的长度的时候,不计算\0的。
数组作为函数参数传递的时候,已经退化为指针了,Func函数的参数str_arg只是表示一个指针,那个100不起任何作用的。
2.typedef char *String_t; 和 #define String_d char * 这两句在使用上有什么区别?
答:typedef char *String_t 定义了一个新的类型别名,有类型检查。而#define String_d char * 只是做了个简单的替换,无类型检查,前者在编译的时候处理,后者在预编译的时候处理。
同时定义多个变量的时候有区别,主要区别在于这种使用方式String_t a,b; String_d c,d; a,b ,c都是char*类型,而d为char类型
由于typedef还要做类型检查。。#define没有。。所以typedef比#define安全。。
- 一道很有典型的面试题目
- 百度很有意思的一道面试题目
- 华为面试的一道题目
- 一道面试的智力题目
- 一道复杂的面试题目
- Google的一道面试题目
- 迅雷的一道面试题目
- 一道华为的面试题目
- 一道js的面试题目
- 一道面试的智力题目
- 分享一道微软的数据结构面试题目
- Google的一道面试题目(2)
- Google的一道面试题目(英文原版)
- 一道简单点的面试题目
- 一道面试题目,关于this的理解
- 一道Java面试题目--对象的构造
- 关于腾讯面试的一道题目
- 关于Notify() wait()的一道面试题目
- eclipse 常用插件
- 设计性实验一 二叉树的遍历
- QTP中report对象的封装
- Codeforces Round #124 (Div. 2)
- 第15章(最终章) 写一个块设备驱动
- 一道很有典型的面试题目
- Java新建对象事情1
- ActivityManagerService中收集可用内存getMemoryInfo的实现
- spring-基于注释(Annotation)的配置
- 2012.6.12 .net自定义xml序列化及自定义特性
- 那些年,我们一起学的C++
- Android应用小技巧集锦
- 使用ControllerClassNameHandlerMapping实现SpringMVC的CoC配置
- 易中天很有哲理的十句话