字符串、指针、引用、数组基础

2021-07-14 04:05

阅读:497

标签:就会   数组名   ring   并且   转换   str   bsp   定义   其他   

1.字符串:
字符是由单引号所括住的单个字母、数字或符号。若将单引号改为双引号,该字符就会变成字符串。它们之间主要的差别是:双引号的字符串“A”会比单引号的字符串’A’在字符串的最后补上一个结束符’\0’(Null字符,ASCLL值为0)。
两种方式创建字符串:
1)字符串数组:
char str1[ ] = “This is a test ! “;
2)声明String类
#include
string str2 = “This is a test ! “;
 
2.指针
1)取地址符:&
&变量名称;  //获得变量所在的内存地址
2)指针变量:
用来存储内存地址的变量。
数据类型 *指针变量 = &变量名称;
3)指针数组:
一维指针数组的声明格式:
数据类型 *数组名[元素名称];
过去以二维的字符数组来存储字符串数组:
char name[4][10] = {“Justinian”, “Momo”, “Becky”, “Bush” };
现在可以改为声明一维字符串指针数组://将指针指向各个字符串的起始地址,如name[0]指向字符串“Justinian”
char *name[4] = {“Justinian”, “Momo”, “Becky”, “Bush” };
 
3.动态分配
内存在运行阶段分配,若指向动态分配内存空间的指针,在未释放该地址空间前又指向了别的内存空间,则原指向的内存空间将无法被释放,从而造成内存泄露。
1)动态分配变量:
声明格式:
数据类型 *指针变量 = new 数据类型(初值);
如:
int *ptr = new int;
delete ptr;
2)动态分配数组:
int *ptr = new int[ nop ];    //动态分配数组为nop个元素
delete []ptr;
 
4.引用
int j = 20;
int &refj = j ;   //声明引用需使用取地址符号&,并且同时设置初值
注意:当refj成为j的别名后,就不能再将refj这个标识符重复声明为其他变量或对象的别名,并且所用作用于refj身上的运算处理都会同时作用到j身上。
 
5.指针引用
将引用的初值指向某个指针变量的地址。
如:
int Arr[3] = {1,2,3};
int* PtrArr = Arr;   //声明指针变量PtrArr,并指向数组Arr的起始地址
int* &refArr = PtrArr;     //声明指针引用refArr,来指向PtrArr
for(int i=0;i3;i++)
    cout“ “;
cout
 
#include 
#include 
usingnamespacestd;
intmain(intargc, constchar* argv[]) {
    // insert code here...
    charName[] = "John";
    char*p_N = "Marry";  //定义字符串指针 *p_N 并设置其初值
    cout"Name[]的地址:"" 字符串的内容:"endl;
    //由于传递字符指针给cout会直接显示出字符串,故使用强制类型转换(int *)来显示指针变量*p_N所指向的地址
    cout"p_N的地址:"int*)p_N" 字符串的内容:"endl;
    
    return0;
}

 

 
6.获取数组长度
int arr[] = {1,5,9,10,9,2};
length_arr = sizeof(arr)/sizeof(arr[0]);
len_arr = end(arr)-begin(arr);

字符串、指针、引用、数组基础

标签:就会   数组名   ring   并且   转换   str   bsp   定义   其他   

原文地址:https://www.cnblogs.com/Bella2017/p/9540340.html


评论


亲,登录后才可以留言!