c/c++ 常见笔试面试小知识
来源:互联网 发布:中国好吃的泡面知乎 编辑:程序博客网 时间:2024/05/29 13:14
1.
问有语句: char *p="asd"; 是否可执行 p[0]='q'; ?
语句char *p="asd"; 只是定义了一个指针变量,指向了一个常量字符串,所以p[0]='q';是不允许的。而p="qwe"; 确是允许的,因为p是变量。
2.
问 void fun(char *p){p=new char[10];}
void main()
{
char *p;
fun(p);
}
是否给p分配了内存?
因为void fun(char *)相当于传递了地址变量的值,其临时变量值只存在于fun函数中,所以p并没有指向有效分配的内存(即p值没有改变)。正确做法为void fun(char * &p){p=new char[10];}
3.
问:
char str1[]="asdfg";
char *str2="asdfg";
char str3[5]={'a'};
void fun(char * str4);
void fun(char str5[]);
sizeof(str1),strlen(str2) ,strlen(str3), strlen(str4),sizeof(str1),sizeof(str2),sizeof(str3),sizeof(str4)位多少 ?
sizeof(str)若str为指针,则无论str是什么类型的指针,其值均为4;若str为数组,则sizeof(str)返回值为数组长度*数组类型长度(若类型为char类型长度为1,若为int类型长度为4....)
strlen(str) 中str为字符串地址,返回从第一个非字符串结尾字符开始的字符直到结尾字符为止的长度(不包括结尾字符'\0'),对于str1默认数组长度为6,5个字符一个'\0',所以strlen(str1)为5,strlen(str3)为1,若 char str3[5] = { 'a','b','c','d','e' };那么strlen(str3)值一般大于5,这个与编译器有关。对于函数参数中的无论是数组形式还是指针形式,形参中都当作指针,即sizeof(str5)值为4.
---未完待续
- c/c++ 常见笔试面试小知识
- 《程序员面试笔试宝典》C知识归纳
- C/C++笔试面试常见题目2
- C/C++ 程序设计员应聘常见面试笔试试题深入剖析
- C语言笔试面试常见编程题目(更新中)
- C笔试常见考点
- C\C++小知识:const的常见用法
- 面试:C语言C++小知识总结(1)
- 面试:C语言C++小知识总结(2)
- C语言 小知识!~
- C 小知识整理
- c语言 小知识
- C/C++小知识
- c++/java小知识
- 求助 c小知识
- C语言小知识
- C/C++ 小知识
- c语言小知识
- 做好三件事 股市就是你的提款机
- Ajax 获取 responseText 形式的响应数据(二)
- xxx
- java基本数据类型
- HDU 1079 Calendar Game
- c/c++ 常见笔试面试小知识
- 递归
- 大话设计模式之四 代理模式
- Linux下配置jdk+tomcat+mysql+oa
- iOS中可以设定时间自动消失提示框的三种实现方式
- cygwin 设置环境变量
- 编程心得
- 运算符和自加和自减运算符
- Unity基础小案例--跳动的小球、自定义第一人称控制器