IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 解析以下代码 -> 正文阅读

[C++知识库]解析以下代码

目录

? ? ? ? ? ? ? ? 1.1 代码1

? ? ? ? ? ? ? ? 1.2 代码2

? ? ? ? ? ? ? ? 1.3 代码3

? ? ? ? ? ? ? ? 1.4 代码4

? ? ? ? ? ? ? ? 1.5?代码5

? ? ? ? 2.解析

? ? ? ? ? ? ? ? 2.1 解析(题一)

? ? ? ? ? ? ? ? 2.2 解析 (题二)

????????????????2.3?解析 (题三)

? ? ? ? ? ? ? ? 2.3 解析(题四)

? ? ? ? ? ? ? ? 2.4 解析(题五)


1.代码

int main(void) {
     int a[5] = {1, 2, 3, 4, 5};
     int *ptr = (int *)(&a + 1);
     printf("%d %d", *(a + 1), *(ptr - 1));
     return 0;
 }

2.解析

?数组名本质上其实就是首元素的地址

如果取地址数组名,所以int*?ptr=(&a+1)就是整个数组的地址+1就是p跳过整个数组

因为a是一个整型的数组,所以*(a+1)从首元素开始跳过4个字节正好跳到第二个元素 2

ptr使用整型指针存放的a的地址,所以一次也是跳过一个字节,*(prt-1)就是往前跳四个字节正好回到了a数组的第五个元素5

所以最后的结果就是2和5

1.2 代码2

int main() {
    int i, j, k, a = 3, b = 2;
    i = (--a == b++) ? --a : ++b;
    j = a++;
    k = b;
    printf("i=%d,j=%d,k=%d\n", i, j, k);
    return 0;
}

2.2解析(题二)

? ? ? ? 首先一个条件表达式

? ? ? ? ? ? ? ? --a先减减后使用 a=2

? ? ? ? ? ? ? ? b++先使用后加加 b=2? ?

? ? ? ? ? ? ? ? a==b

? ? ? ? ? ? ? ? 然后b=3

? ? ? ? ? ? ? ? i=--a 等于1

? ? ? ? ? ? ? ? j=a++先加后使用 j=1,a=2

? ? ? ? ? ? ? ?k=b,b=3,k=3

? ? ? ? ? ? ? ? 所以最后的结果是? i=1 j=1?k=3

代码三

#include <stdio.h>
    main(){
    int a = 2, c = 5;
    printf("a=%%d,b=%%d\n", a, c);
}

解析三

? ? ? ? 在c语言中每两个%%会被当成一个%(字符)直接输出,由于d没有了格式控制符,所以也被当做了一个普通字符

? ? ? ? (如果两个%配成一对的话就合成一个普通字符失去了可是控制符的功能)

代码四

scanf("a=%f,b=%d", &a, &b);

解析四? ? ? ?

在输入数据的时候,引号里面的内容必须全部输入

代码五

struct {
    short a;
    char b; 
    float c; 
}cs; 

? 解析(题五)

short是2字节

char是1字节

float是4字节

过程:

首先short占了2字节,然后轮到char,他只占1但是由于已经有了short的2字节所以整个结构体需要是2字节的倍数,因此char占了1字节之后对齐补上1字节。最后轮到float,4字节,是2的倍数所以不用补。

现在整个结构体就是2+(1+1)+4=8,结构体的大小需要是最长元素的倍数,也就是4的倍数,很显然满足,所以最终答案就是8。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:04:14  更:2021-12-06 15:05:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:23:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码