首页 > 编程知识 正文

字符串与指针的初始化和赋值,c语言初始化指针

时间:2023-05-04 13:37:02 阅读:58064 作者:1737

指针初始化和分配进度:

指针初始化和赋值

指针变量初始化

语法形式

存储类型数据类型*指针名称=初始地址

示例:

int *pa=a;

注意事项

如果将变量地址用作初始值,则该变量必须在指针初始化之前声明,并且变量类型必须与指针类型匹配。

可以使用已经有有效值的指针初始化另一个指针变量。

请勿使用内部非静态变量初始化静态指针。

指针变量的赋值运算

语法形式

指针名称=地址

注:“地址”中存储的数据类型必须与指针类型匹配

分配给指针变量的值必须是地址常量或变量,不能是普通整数。 例如,以下情况:

求出地址运算“”中定义的变量和对象的起始地址

动态内存分配成功时返回的地址

异常:整数0可以分配给指针,表示空指针。

可以定义或声明指向void类型的指针。 可以为该指针分配任何类型的对象的地址。

示例: Void *常规;

指针nullptr

以前用0或NULL表示空指针的问题:

C/C空宏是一个具有许多潜在错误的宏。 因为某些库将其定义为整数0,而其他库则定义为(void* ) 0。 在c的时代没关系。 但是在c的时代,这引起了很多问题。

C 11是使用nullptr关键字的空指针,该指针更准确,类型更安全

示例6-5定义、分配和使用指针

//6_5.cpp

#包含

用户命名空间STD;

int main () )。

int i; 定义//int类型数I

int *ptr=i; 获取//I的地址并分配给ptr

i=10; //int型数赋值初始值

cout 'i=' i endl; //输出int型数值

cout '*ptr=' *ptr endl; //输出int型指针指向的地址内容

返回0;

}

执行结果:

i=10

*ptr=10

示例6-6使用void类型指针

#包含

用户命名空间STD;

int main () )。

//! 语音语音对象; 错了。 无法声明void类型的变量

void *pv; //是的,可以声明void类型的指针

int i=5;

pv=i; //void型指针指向整数变量

int*pint=static_castint*(PV; //void指针转换为int指针

cout '*pint=' *pint endl;

返回0;

}

指向常量的指针

您不能更改指向常量的指针所指向的对象的值,但指针本身可以更改,也可以指向另一个对象。

范例

int a;

常数int * P1=a; //p1是指向常量的指针

int b;

p1=b; //正确,p1自身的值可以改变

*p1=1; //编译时发生错误,无法更改p1中指向的对象

指针类型常数

声明指针常数时,不能更改指针本身的值。

范例

int a;

int * const p2=a;

p2=b; //错误,p2是指针常数,不能改变值

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。