有关sizeof strlen typedef define的面试题
来源:互联网 发布:linux开机出现dracut 编辑:程序博客网 时间:2024/05/16 04:53
对字符串进行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安全。。
- 有关sizeof strlen typedef define的面试题
- 有关sizeof strlen typedef define的面试题
- 【经典面试题】有关sizeof、strlen处理字符串的问题
- [面试题]sizeof与strlen的区别
- Sizeof与Strlen的区别与联系(面试题)
- 企业面试题&&strlen与sizeof的区别
- 有关 sizeof和strlen的总结
- 有关 sizeof和strlen() size()的总结
- 有关 sizeof和strlen的总结
- 有关数组的运算:sizeof()和strlen()
- 有关#define和typedef
- C语言常见知识1(sizeof 和strlen,typedef和#define)
- C++开发面试题:sizeof与strlen区别
- sizeof 常用的面试题
- 华为的另一道面试题,有关union的sizeof()的问题
- 有关 sizeof和strlen的总结[原创,总结]
- 有关 sizeof和strlen的总结[原创,总结]
- C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
- 2013-04-16由MERGE JOIN SEMI引发的性能问题
- Mocor
- Java数据类型的划分
- OSC首发:android中的左右滑屏实现By ViewPager
- Win7 操作系统 中文乱码
- 有关sizeof strlen typedef define的面试题
- Javascript 中 null、NaN和undefined的区别
- 如何让div中的内容垂直居中
- mac office 2011 du skal afslutte 安装 弹窗 报错
- javascript中的定时器
- 史上最全的ios源码汇总。欢迎收藏
- SUN系统 管理概念/命令
- MAGMI: Magento Mass Importer
- Java中的八种运算符