第二次复习

本文详细介绍了C++中的指针概念,包括指针的声明、使用、数组与指针的关系,以及如何通过new和delete进行内存的动态分配与释放。同时,探讨了字符串操作函数如strlen、strcpy的使用,以及动态分配结构体内存的方法。

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

指针

1.指针的声明和使用
(附带new分配内存)
(附带数组)

int*ptr=&red;//声明指针
cout<<(int*)red<<endl;//强制转换来取地址
int*ptr=new int;//分配内存,此时ptr为指针,可以给其指向赋值
*ptr=10;
delete ptr ; // 释放内存
int *ptr = new int[10];/delete ptr ; //数组的动态分配内存
//ptr=&ptr[0]
char*wren="brids" ;//合法,取得birds的首地址给了wren
//上面也在后面几章讲到过,干脆提前吧
cin>>birds;//输入字符串,也可以直接输入地址,虽然没有意义
cout<<(char*)ptr;//打印字符串
cout<<(int*)ptr;//打印字符串的地址
也可以cout<<(void*)ptr;

1.1关于数组名
如有数组array,其地址=其第一个元素地址=array;
可以array+num来访问其中每个元素地址;
1.2
cout输出时,永远取得是char类型字符串/数组的首地址
1.3使用strlen(),strncpy(),strcpy();

	int a = strlen(b) ; //测量b的长度,但是不计算空字符,char数组末尾恒有‘/0’
	char*c=new char[strlen(b)+1]//如果要把b中内容复制给c而且c为动态内存
	strncpy(a,"adk...",19); a[19]='/0'; //因为函数不会自动给空符所以要自己
给,作用是把"  "内的19个元素复制到a中
	strcpy(ptr,a);//把a中内容复制到ptr中,也不自动带/0

1.4动态分配内存(结构体)
第2篇文章有。
1.5指针数组初识

struct a {int year};
a ptr1;
a trio[3];
a*arp[3]={&b,&c,&d};//这里bcd都是a对象
cout<<arp[1]->year;//也可以*(arp[1]).year
auto prd = app ; //c++11自动类型判断

1.6容器的简单使用(略)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值