c初级

 

 

static等

为兼容c
输出字符变量地址时候,改成输出从这个 内在单元开始 存放的一系列字符 ,到
向后遇到 的第一个'/0'为止


strutct Student{
   
};

name.size();//字符串长度
strlen(name);//容量

c    c++
strcpy    name=字符串
strcat    name+=字符串
strcmp    s1==s2    s1>s2

string name;
name.c_str()    //c++风格的字符串转为c风格的字符串


指针
用来保存地址的变量

数组名是 第一个元素的地址

保存A类型变量地址的指针,称为“A指针”
A类型变量的地址,简称为“A地址”

 

 

任何变量都有对应的指针类型
指针在使用前必须初始化
指针的类型决定了指针所参与的运算
指针只能进行加减法运算

数组中
a+i 相当于 &a[i]
*(a+i) 相当于 *&a[i]

c++ 数组越界不严格
java 数组越界严格
c++里有sizeof,java里没有

结构是一种数据类型
结构类型也有指针 Date* p; (*p).year 简写成 p->year

int* p = NULL;    //空指针
int* q = new int;
int* q = new int[5];
delete[] q    //表示释放数组q的内存,q没变,只是q指向的内存空间被释放了
p = NULL;    //还原指针,NULL就相当于0

栈在底 堆在上

 

 

 

 

 

 

 

0:38 2011-1-16
精通c++ core,能进行vc++的基本开发
0相当于NULL(注意区分大小写)
指针4个字节

在定义时初始化
const int* p = &n; //const修饰int,整型常量 就近原则,指向常量的指针 
int* const p ..  //指针指向一个固定的地址,常指针

int* a[5] 指针数组,5个地址
int* a[5] = {} 5个空指针 (a[0]=new int;a[1]=new int[3];..)

void *p = NULL; //表示指向不确定,
    int n = 100;
    p = &n;
    cout << *(int*)p << endl;

 


16:19 2011-1-16
int main(int argc,char* argv[]){} //argc表示参数的个数
//argv[0] 相当于a.out(可执行文件的名字),argv[1]..表示之后所跟的参数
cout << "你的可执行命令名为" << argv[0] << endl;
    cout << "你带了" << argc-1 << "个参数" << endl;
    for(int i=1; i<argc; i++)
    {
         cout << argv[i] <<endl;
    }

atof(字符串) //转为
atoi(字符串) //转为整数 "123"
man atof //linux查询

引用,本质上是一个聪明的指针
int n = 100;
int m = n; //复制其
int& rn = n ; //起别名,不用复制
变量的类型终生不变,地址同样是终生不变,别名也不变(引用)
也就是说,c++里的引用不可变,但java里的引用可以随时改变,c++里的指针相当于java里的引用,可以改变

指针变量 p开头
引用 r开头
c++中提倡用引用,不用指针

void inc(int& m)
{
 ++m; //会修改传来的m参数的值,引用
}
void intc(int m)
{
 ++m; //不会修改传来的参数的值,不是引用,只会复制一个变量,产生另一个局部变量
}

const int& r //常量引用,接受常量初始化,禁止修改这个引用
尽量用引用来传递参数,至少不会复制一份数据
尽量用const来限制对引用的修改


内存结构
 代码区(存放程序的指令)
 数据区(存放全局变量和静态变量)
 常量区(存放字面量)
 堆(new )
 栈(p )

函数指针
函数的地址往往用函数名来表示
函数指针的类型也要求一致

void output(int a[], int n);
void main()
{
 void (*fp)(int a[], int n) = NULL;
 int x[5];
 fp = output;
 fp(x, 5);
}

memset(a, 0, sizeof(int)*n)
相当于
for(int i=0;i<n; i++) a[i]=0;

 

 

 

 

 

引用没有const, 指针有const,const的指针不可变
引用不能为空,指针可以为空
sizeof引用 得到的是所指向的变量(对象)的大小,而sizeof指针 得到的是指针本身的大小
指针和引用的自增(++)运算意义不一样

 

 

 

 

<< flush

刷新缓冲区

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

折腾数据折腾代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值