C++与数据结构学习之路

1. 关于int main(int argc, char **argv)

argc 指的是argument counter,它用来统计程序运行时发送给main函数的命令行参数的个数,默认为1;
argv 指的是argument vector,它用来存放指向的字符串参数的指针数组,每一个元素指向一个参数。
各成员含义如下:
argv[0]指向程序运行的全路径名
argv[1]指向在DOS命令行中执行程序名后的第一个字符串
argv[2]指向执行程序名后的第二个字符串
argv[3]指向执行程序名后的第三个字符串

2. _int64 指8个字节长度的int:

sizeof(__int64)=8;
sizeof(int)=4;

3. typedef:它可以为类型取一个新的名字

 typedef int Rank;

在这个类型定义之后,标识符Rank可作为类型 int 的缩写,例如:Rank a=1;

4. 位移运算符<<,>>

<<是左位移运算符,左操作数的值向左移动右操作数指定的位数。

int a=1; a=a<<1或a<<=1;//a=2

5. 指针变量:保存另一个变量地址的变量。

int *p;   //表示定义了一个指针变量p,该指针变量保存的地址中存储的是一个整型数

为指针赋值有两种方法:

  1. 把某一变量的地址赋给指针变量(&为取地址运算符,一元运算符;空指针为NULL)
int *p; int x; p=&x; int *p2=NULL;
  1. 将一个指针变量赋给另一个指针变量
 int x=1,y=2,*p1=&x,*p2=&y; p1=p2;

指针变量的访问: *为取指针指向的值的运算符,一元运算符

int x=3; int *p=&x; cout<<*p;//3

通配指针类型void可以和任何类型的指针相互赋值

void *p

常量限定符const(const在哪个语法单位前,限制的就是哪个部分)

const int *p=&x;    //限定int的值x不能改变(指向常量的指针) 
int *const p=&x  //限定p的值不能改变(指针常量) 
const int *const p=&x    //p和x都不能变

数组名是一个指针,且是一个指针常量

int array[10]={1,2,3,4,5,6,7,8,9}; cout<<*array  //1
    cout<<*(array+1)   //2

动态变量

int *p; p=new int;*p=10;//
int *p=new int(10); 
int *a; a=new int[20];//
int *a=new int[20] 
delete p;//回收 
delete [] p;//回收 
if (!p){//或if (p==NULL)或  if(p==0) 
cout<<"allocation failure"; return 1;}//也可用assert(p!=0)

7、指针作为形参(swap函数)

   void swap(int *a, int *b){ int c=*a;
    *a=*b;
    *b=c; 

(让函数返回两个解)

void func(int a, int *b, int *c); int a,x,y; func (a, &x, &y)

8、引用类型

int i; int &j=i;//j和i用的是同一个地址,获得了指针的效果

引用传递(swap函数)(c++内置函数和这种算法相似)

void swap(int &a,int &b){ int c=a; a=b; b=c;} 

6. C风格字符串和string

//C风格字符串已'\0'结尾
char str1[6]={'h','e','l','l','o','\0'};
char str2[6]="hello";
char *str3=str2;
const char *str4="hello";
//C++风格没有'\0'
string str5="hello";
//相互转换
string->const char *:str4=str5.c_str();
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值