0
点赞
收藏
分享

微信扫一扫

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

刷新缓冲区

 

 

 

 

 

 

举报

相关推荐

C语言初级

C++初级编程

c++map初级使用

C语言初级概念区分

C#串口助手初级入门

C语言学习分享/初级指针

0 条评论