C++_常量-变量-函数

常量

 const常量 将变量定义为常量,防止意外的修改,增强程序的健壮 const常量会进行类型安全检查
  整型-编译器确定常量的类型--除非有理由存储为其他类型,否则将整型常量存储为int类型

变量

变量声明 declare variables
变量赋值 Assign Values to Variables
// equivalent code
变量声明和赋值 Declare and Assign Value Together

 defined --》 which is defined only after using it
变量定义--变量使用 Create Variables  Print Variables

data-type
    int   --》 integer
	float ---》 float point number
	char  --》 characters -- single quotes
	
变量名称-- snake case / Illegal Variable Names

C++ 变量

 变量的作用域、生存期和可见性  
 变量--全局变量  局部变量
 变量-声明 初始化 赋值

 标识符
    C++的作用域主要有四种:函数原型作用域、块作用域、类作用域和文件作用域
    可见性是指标识符是否可见,可引用。	

符号说明

 & 指示变量的地址-取地址运算符
 & 类型标识符--用来声明引用- 引用声明符号
     引用,就是给变量取另外一个名字。而只要这两个变量的任何一个发生变化,都会影响到另外一个与其一起发生变化
    当&a前面有类型符号时,比如例子的int &a,这种情况就是对引用的声明。而如果前面没有类型符号,则是取地址。
&符号另外一种常见的用法则是&&,表示逻辑与运算   位与,这个是最简单的用法
 * 定义指针运算符 --当* 用于声明变量或者函数的时候,意为声明该变量或者函数为一个指针
    当* 当做定义指针的运算符的时候,其作用目标可以是* 的左边,也可以是* 的右边,就像我们可以写 a++, 也可以写 ++a。当没有括号的时候,* 默认作用于左边的目标
 * 解除引用运算符	表示取指针的值

运算

 运算优先级 结合方向
 单目运算符 双目运算符 多目运算符 	

类型转换

 1.初始化和赋值进行转换
 2.以{} 方式初始化进行住那换
 3.表达式中的转换
 4.传递参数时的转换
 5.强制类型转换	 

思考的依据概念

 01. 变量类型-变量名称-变量值
  Change values of Variables
  Value of One Variable to Another 
  Type conversion 
02. 使用存储的方式理解--编译器 内存
存储类型-位置标签-存储内容
  需要的存储空间--存储单位的名称
  赋值--将值给存储单元
使用 &运算符来查看内存地址
 指向向内存位置的表达式被称为左值(lvalue)--左值可以出现在赋值号的左边或右边
 存储在内存中某些地址的数值被称为右值(rvalue)

  声明不是定义--声明是声明,定义是定义--首次使用之前声明即可,不像C语言必须在开始位置
  声明即定义--编译器为位置标签分配内存空间--即为变量分配内存空间
  
  
  变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储
  
03.并发编程--共享数据的保护本质上是在对抗编译器和处理器的优化,所以保护不能过度  
  会产生差异,原因主要来自下面三个方面:
   编译器优化
   处理器: 硬件平台,没有任何一个会提供完全的顺序一致(sequentially consistent)内存模型
     CPU out-of-order执行
     CPU Cache不一致性
C++程序的内存格局通常分为四个区:
  全局数据区(data area),代码区(code area),
  栈区(stack area),堆区(heap area)(即自由存储区)。 
  
  
typeid(a).name()    返回描述变量类型的字符串(注意:是类型全名)
sizeof sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小 
typeid是run time type identify,是运行时判定,sizeof是编译期判定

函数

function heading --》 其他部分之间的接口 描述了函数与调用其的其他函数的接口
   函数返回类型return values
   函数名 
   函数形参argument list==parameter list
function body    --》 完成的指令
  statement 语句 
   return statement 返回语句
  eg int main(){} 
    int main(void){ return 0;}
	void main(){} --不推荐
 函数原型和函数定义
 prototype  即带有分号的函数头,
             函数头不带分号的话,编译器会要求提供函数体
 函数有返回值和没有返回值 void 表示没有返回值

有个函数声明,编译器就知道参数压栈怎么压,同时也知道返回的时候怎么获取返回值

编译器 -- 隐式声明函数
       -- 内建函数
	     gcc的内建函数主要分两类,优化也是基于gcc能够确定这个优化是没问题的
		    一类以_builtin_为前缀,
		    一类没有前缀。后者往往与某一个标准库的函数相对应,如sin,printf,exit
 msc的内置函数叫Compiler Intrinsics 
 gcc的内置函数叫Built-in Functions 
      _builtin_parity(x) 此内置函数用于检查数字的奇偶校验
	  _builtin_clz(x)    此内置函数用于计算整数的前导零。clz 代表计数前导零
	 
编译过程
    .预处理(Preprocessing)  编译(Compilation)  汇编(Assemble)  .链接(Linking)

补充

symbol
, comma 逗号
; semicolon 分号
. full stop 句号
: colon 冒号
~ tilde 波浪符。
? question mark 问号
header file 头文件==包含文件 include file

Java

程序执行的突破点
 java中的main函数也叫作主函数,主函数是一个作为程序入口的静态函数,可以被JVM识别并自动加载。
   syntax:
    public static void main(String[] args) {
   
     }
说明
 主函数没有返回值,他的返回值类型是void。
  main函数
 主函数的参数类型是字符串数组

Python

python程序从开始到结尾顺序执行
让模块(函数)可以自己单独执行(调试),相当于构造了调用其它函数的入口,这就类似于C/C++里面的main函数了。
构造一个main函数入口就可以调用测试自己写的函数	
  if __name__ == '__main__'
  
R语言也是开始到结尾顺序执行  

参考

关于gcc内置函数和c隐式函数声明的认识以及一些推测https://www.cnblogs.com/jkred369/p/6902600.html
posted @ 2022-12-16 17:38  辰令  阅读(88)  评论(0编辑  收藏  举报