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

博客介绍了字符串、指针、引用和数组的基础知识。包括字符串与字符的区别、创建字符串的方式,指针的取地址符、指针变量和指针数组,动态分配变量和数组,引用及指针引用的声明和使用,还提及获取数组长度的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.字符串:
字符是由单引号所括住的单个字母、数字或符号。若将单引号改为双引号,该字符就会变成字符串。它们之间主要的差别是:双引号的字符串“A”会比单引号的字符串’A’在字符串的最后补上一个结束符’\0’(Null字符,ASCLL值为0)。
两种方式创建字符串:
1)字符串数组:
char str1[ ] = “This is a test ! “;
2)声明String类
#include<string>
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;i<3;i++)
    cout<<*( refArr+i )<<“ “;
cout<<endl;
 
#include <iostream>
#include <cstdlib>
usingnamespacestd;
intmain(intargc, constchar* argv[]) {
    // insert code here...
    charName[] = "John";
    char*p_N = "Marry";  //定义字符串指针 *p_N 并设置其初值
    cout<<"Name[]的地址:"<<&Name<<" 字符串的内容:"<<Name<<endl;
    //由于传递字符指针给cout会直接显示出字符串,故使用强制类型转换(int *)来显示指针变量*p_N所指向的地址
    cout<<"p_N的地址:"<<(int*)p_N<<" 字符串的内容:"<<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);

转载于:https://www.cnblogs.com/Bella2017/p/9540340.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值