C++深度解析教程笔记1

server/2024/9/23 17:56:23/

C++深度解析教程笔记1

  • 第1课 - 学习 C++ 的意义
  • 第2课 - C 到 C++ 的升级
    • C++代码-register与重复全局变量
    • cmd命令
    • C++代码
    • cmd
    • C代码
    • 小结

本文学习自狄泰软件学院 唐佐林老师的 C++深度解析教程,图片全部来源于课程PPT,仅用于个人学习记录

第1课 - 学习 C++ 的意义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第2课 - C 到 C++ 的升级

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C++代码-register与重复全局变量

#include <stdio.h>int g_v;
//int g_v;int main(int argc, char *argv[])
{printf("Begin...\n");int c = 0;for(int i=1; i<=3; i++){for(int j=1; j<=3; j++){c += i * j;}}printf("c = %d\n", c);register int a = 0;printf("&a = %p\n", &a);printf("End...\n");return 0;
}

cmd命令

D:\Users\cyz1994\Cxuexi\g++>g++ 2-1.cppD:\Users\cyz1994\Cxuexi\g++>a
Begin...
c = 36
&a = 000000000061FE10
End...//C++ 编译运行OKD:\Users\cyz1994\Cxuexi\g++>gcc 2-1.c
2-1.c: In function 'main':
2-1.c:24:5: error: address of register variable 'a' requestedprintf("&a = %p\n", &a);// C编译报错

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C++代码

#include <stdio.h>struct Student
{const char* name;int age;
};f(i)
{printf("i = %d\n", i);
}g()
{return 5;
}int main(int argc, char *argv[])
{Student s1 = {"Delphi", 30};Student s2 = {"Tang", 30};f(10);printf("g() = %d\n", g(1,2,3,4,5));return 0;
}

在这里插入图片描述

cmd

D:\Users\cyz1994\Cxuexi\g++>g++ 2-2.cpp
2-2.cpp:9:2: error: expected constructor, destructor, or type conversion before '(' tokenf(i)^
2-2.cpp: In function 'int main(int, char**)':
2-2.cpp:25:5: error: 'f' was not declared in this scopef(10);^
2-2.cpp:27:37: error: too many arguments to function 'int g()'printf("g() = %d\n", g(1,2,3,4,5));^
2-2.cpp:14:1: note: declared hereg()^
/*注释g() f()相关行后 编译成功*/
D:\Users\cyz1994\Cxuexi\g++>g++ 2-2.cppD:\Users\cyz1994\Cxuexi\g++>a

复制到C文件后,GCC编译

D:\Users\cyz1994\Cxuexi\g++>gcc 2-2.c
2-2.c: In function 'main':
2-2.c:22:5: error: unknown type name 'Student'; use 'struct' keyword to refer to the typeStudent s1 = {"Delphi", 30};^~~~~~~struct
2-2.c:22:19: warning: initialization of 'int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]Student s1 = {"Delphi", 30};^~~~~~~~
2-2.c:22:19: note: (near initialization for 's1')
2-2.c:22:29: warning: excess elements in scalar initializerStudent s1 = {"Delphi", 30};^~
2-2.c:22:29: note: (near initialization for 's1')
2-2.c:23:5: error: unknown type name 'Student'; use 'struct' keyword to refer to the typeStudent s2 = {"Tang", 30};^~~~~~~struct
2-2.c:23:19: warning: initialization of 'int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]Student s2 = {"Tang", 30};^~~~~~
2-2.c:23:19: note: (near initialization for 's2')
2-2.c:23:27: warning: excess elements in scalar initializerStudent s2 = {"Tang", 30};^~
2-2.c:23:27: note: (near initialization for 's2')//添加 typedef后编译成功
D:\Users\cyz1994\Cxuexi\g++>gcc 2-2.cD:\Users\cyz1994\Cxuexi\g++>gcc 2-2.c
2-2.c:9:1: warning: return type defaults to 'int' [-Wimplicit-int]f(i)^
2-2.c: In function 'f':
2-2.c:9:1: warning: type of 'i' defaults to 'int' [-Wimplicit-int]
2-2.c: At top level:
2-2.c:14:1: warning: return type defaults to 'int' [-Wimplicit-int]g()^D:\Users\cyz1994\Cxuexi\g++>a
i = 10
g() = 5

C代码

#include <stdio.h>
typedef struct Student_t Student;
struct Student_t
{const char* name;int age;
};f(i)
{printf("i = %d\n", i);
}g()
{return 5;
}int main(int argc, char *argv[])
{Student s1 = {"Delphi", 30};Student s2 = {"Tang", 30};f(10);printf("g() = %d\n", g(1,2,3,4,5));return 0;
}

小结

在这里插入图片描述


http://www.ppmy.cn/server/27016.html

相关文章

「JavaEE」线程安全1:成因死锁

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;JavaEE &#x1f387;欢迎点赞收藏加关注哦&#xff01; 线程安全成因&死锁 &#x1f349;线程安全问题的成因&#x1f349;可重入性&#x1f349;死锁&#x1f34c;解决方案 &#x1f349…

Spring-aop切面环绕通知

1.pom引入 <!-- 切面依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2.定义注解&#xff1a;AroundAnnotation import java.lang.annotation…

leetcode40

给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 示例 1: 输入: candidates [10,1,2,7,6…

python项目入门新手攻略

最近工作需要接手了代码量比较大的python开发的项目&#xff0c;平时写python不多&#xff0c;记录一下如何熟悉项目。 分析调用流程-pycallgraph 因为代码量比较大&#xff0c;所以希望通过工具生成代码调用流程&#xff0c;因此用到了pycallgraph。 pycallgraph&#xff0…

CSS之显示覆盖内容(z-index)

前言&#xff1a; 我们有的时候&#xff0c;希望下方的内容能够显示到上方&#xff0c;达到类似于多个图层的效果&#xff0c;此时我们可以利用z-index这个属性。 介绍&#xff1b; z-index属性值是用来设置元素的堆叠顺序(元素层级)。 覆盖原则&#xff1a; <1>特殊…

Microsoft Universal Print 与 SAP 集成教程

引言 从 SAP 环境打印是许多客户的要求。例如数据列表打印、批量打印或标签打印。此类生产和批量打印方案通常使用专用硬件、驱动程序和打印解决方案来解决。 Microsoft Universal Print 是一种基于云的打印解决方案&#xff0c;它允许组织以集中化的方式管理打印机和打印机驱…

docker-compose单机容器集群编排工具

一 docker-compose 简介 使用一个Dockerfile模板文件可以定义一个单独的应用容器&#xff08;可实现在单机上对容器集群编排管理 的工具&#xff09;&#xff0c;如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案&#xff0c;给大家介绍 Docker 官方产品 Dock…

[华为OD] C卷 5G网络 现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站 200

题目 现需要在某城市进行5G网络建设&#xff0c;已经选取N个地点设置5G基站&#xff0c;编号固定为1到N,接 下来需要各个基站之间使用光纤进行连接以确保基站能互联互通&#xff0c;不同基站之间架设光纤的成 本各不相同&#xff0c;且有些节点之间已经存在光纤相连&#…