现在的位置: 首页 > 综合 > 正文

c++ 笔记1 类型声明

2013年03月29日 ⁄ 综合 ⁄ 共 2053字 ⁄ 字号 评论关闭

exceptional C++

不同的
静态比动态高效

模板元编程  tepleate meta-programming

KDE qt

GNAME   wX widget eexexex
智能指针

内置类型   不需要我们自定义

整形    
bool
char  :signed char,unsigned char, wchar_t  char16_t char32_t    16默认就是占2个字节,char32_t, 制定
int   int, unsigned int
long: long, unsignedl long int
long long: long long,unsignedl long long       

浮点型:
double:
float:
long double: 扩展精度的浮点行
复合类型:   
数组:T[]
指针:T*
引用:T&

自定义类型  用四个关键字 创建我们自己的新的类型
enum,struct,union class    机制

typedef using  产生类型别名

void  类型   void可以作为模板的类型
C不把他当作类型 , C++把他当作类型

long long 至少64位大小的整形值

C++  bytes=一个字节,  =8bit   以bytes为基本单位
   char  1个字节
    可以unsiged 或者signed类型,   实现就是C++编译器, 主要是厂商的不同, 大多数编译是实现为signed char

signed unsigned, 是正负号的   在计算机中是 内存表示不一样,
按有符号解读   -(2^7-1)
按无符号结构解读  2^8-1

通用寄存器的长度, 指针寻址, 一次只能跳四个bit,,

long double,  一次占

一个汉字一个字符,占三个字节  中日韩
一个汉字占两个,三个,

uint8_t 固定确定大小,主要用到跨平台,

utf8 是一个汉字占3个字节
gbk 是一个汉字占2个字节

通过判断某一位的字符是否大于0x80,如果大于则为双字节字符,否则为单字节字符

abc轩辕,5个字符
abc 这三个字母是按单字节(一个字节)存储,    英文字符
汉字是按双字节存储(一个字符按两个字节存储)  汉字

1个字符是8位,8个比特  128个不同的值, 一个值对应一个值  英文字母、数字、符号
2个字符是16位,16个位, 128*128, 一个值对应一个汉字

ctrl+all+l 锁屏

u16''

0x1010  
 
U'轩'  ->char32_t   UFADEBEEF
u ‘轩’ -> char16_t     DEAD

25 默认是int类型, 就是signed int类型的简写, 默认就是这样

0x是十六进制的文字常量

25U  表示是无符号整形

16. 默认是double,不是float类型
12f 是不对的

12.f是 正确的语法

16. 2.08  都是double类型
12f 12.F 是float类型 不加后缀都是double 类型

8位整形值,int,

S EEEEEE FFFFFFFFFFFFF;

16,20s/sizeof(\([^)]\+\))/numeric_limits<\1>/g
^是取反集

16.20s/

“abc”   是 const char *

R "(abc"\n")"   这里都不是成对出现的, 他的语法格式是 R"()"
主要是用来进行正则匹配的,

R“x()x”  修改边界的字符串;   比如说都是匹配

-std=c++11,打开C++11的标准的

u8“轩辕ab”    UTF-8

U "轩辕ab"  

cleasr

一个民另可以 是与
/huw
void foo(); typedf com

声明的作用, 是告诉编译器,我的名字关联什么,
 对与类型基级别

对于对象的,声名, 对象即声明,

声明可以有多次, 但是定义只有一次

别处,只要不在同一个作用域的,

5种存储方式
外部存储,静态存储,寄存器存储,自动存储,

word:

__cpp

::获取全局的作用域,

对象的定义:
   一是分配内存
   二是内存那块区域的初始化

//内置类型, 不调用构造函数

内置类型的默认构造函数 把他0

int *p=int*();

局部对象是不调用构造函数的, 也就是不分配内存
全局,名字空间, 静态 给他分配为0,

统一的初始化语法,

int n{9}  默认初始化

int n=9; 构造(初始化); 对象n不存在
n=9; 赋值    //对象n存在

text,   程序加载到 这个程序的进程中;

text,data,bss,stack,heap

局部非静态放到栈区

全局,名字空间,静态,是放在数据区   全局静态

占里面分配内存指向,

new 三步
1,分配内存
2,初始化
3,返回指针

     指针p=nullptr;//

全局未初始化区,在main 函数执行之前,来初始化

最好任何一个名字都有作用域
     
void (*Func)(int,int,double)

void useF(Func(fun))
{
     fn(100,100,0.5)
}

//
int  f()
{
      int n;
       return n;  是先拷贝再销毁, 而不是销毁后再
}

int & fun()
{
    static int m=1;
    return 0;

}

存储类型+存储变量+

运算符 和操作符 本质是一样的  

抱歉!评论已关闭.