sizeof和指针地址的两道面试题
来源:互联网 发布:java powerbuilder 编辑:程序博客网 时间:2024/06/05 08:40
也是在CSDN论坛上看到了,原题如下:
1.输出结果的a值为什么是100,而不是255?
2.下面程序为什么会崩溃?
- C/C++ code
- char a=100;int i=sizeof(a=(a+155));printf("%d,%d\n",i,a);//输出结果的a值为什么是100,而不是255?
2.下面程序为什么会崩溃?
- C/C++ code
- struct S{ int i; int *p;};int main(){ S s;int *p=&s.i;p[0]=4;p[1]=3;s.p=p;s.p[1]=1;s.p[0]=2;//程序为什么会在此处崩溃?return 0;}
下面是我对答案的一些解答吧:
1 sizeof是运算符而不是函数,它看到a是char型就知道结果,所以不会去计算a的值。
2 这题的答案我也不能确定,只是看到一个个人感觉对的答案。
int *p=&s.i;
p[0]=4;
p[1]=3;
s.p=p;//等价于s.p=&s.i;
s.p[1]=1;//s.p[1]==*(s.p+1)==*(&s.i+1)==>*(&s.p)=1;也即s.p=1;
s.p[0]=2;//s.p[0]==*(s.p); s.p[0]=2等价于*(s.p)=2;也即*(0x00000001)=2;该地址指向的内容不确定,不能随意修改,不是任何地址都可以供你访问的。
如解答有错误,还请多多指教。
- sizeof和指针地址的两道面试题
- C/C++中关于地址、指针和引用变量的学习笔记(七) : sizeof和typedef
- 数组名的sizeof 和 指针名的sizeof
- 指针的大小--sizeof问题和sizeof使用规则
- sizeof(数组名)和sizeof(指针)的区别
- 数组名和指针的区别 sizeof
- 关于sizeof 指针和数组的讨论
- 数组和指针有关sizeof的题目
- sizeof()数组名和指针的结果
- sizeof 指针和数组的区别
- sizeof 指针和数组
- 指针的地址和数组的地址
- 指针的内容和指针的地址
- 变量的地址和指针
- 指针和地址的区别
- sizeof(数组名)和sizeof(指针)
- sizeof(数组名)和sizeof(指针) .
- sizeof(数组名)和sizeof(指针)
- 戏说Spring里的【IoC与DI】
- PHP cookie session
- Windows API 激活窗体
- SQL2005无法启动SQL Server 请求失败或服务未及时响应
- 开源项目DBUtils
- sizeof和指针地址的两道面试题
- Java多线程编程总结笔记——三线程栈模型与线程的变量
- PHP 非常用/常用笔记
- Jsp welcome-file-list欢迎页面,首先访问Servlet.
- ubuntu找不到无线网络
- 设置ANDROID Activity为固定朝向
- How to fix the issue: An error occurred while validating. HRESULT = '80004005'
- Ubuntu中signal()函数可靠性研究
- /bin/rm: Argument list too long