二十八、数组、指针和字符串:指针的赋值和指针运算(指针常量,常量指针)
2015-04-27 10:32
267 查看
1、指针的赋值 当声明一个指针后没有对其赋初值,指针变量没有存储确定的地址,而是一个随机整数。如果这时引用它所指的值可能会发生意想不到的问题(如修改了它指向系统重要数据)。所以我们要先赋值再引用。 需要注意的是:赋值给指针变量的值必须是地址常量(如数组名),地址变量 。但一定不能是非0整数。 当赋值为0时表示该指针是一个空指针。因此在未确定赋值给某指针时,我们一般将其设为空指针(避免其随机值访问到了重要数据)。
1、指向常量的指针。(常量指针)即指针指向(即存储地址)可以改变,但所指内内容不能修改。
const char* p=”abcd”; char c[]=”defg”; *p=’a’; //错误 不能改变p所指对象 p=c; //正确
2、指针常量(指针本身值不能改变)
int i=3,j=4; int* const p=&i; p=&j; //错误,不能改变指针常量的值3、void指针。特殊指针,可以任意对象为其赋值。
void* p; int a; int *p1; p=&a; //void类型指针指向整型变量a p1=(int*)p; //强制转换将void类型赋值给int型指针p1这里对于常量指针和指针常量总有点模糊不清的概念。。。用一个比较死板的方法,避免多次的描述混淆。
常量指针(指向常量的指针,修饰的是常量对象)。指针常量(显然修饰重点在指针)
对应关系如下
常量------const
指针-------int* cha* 等等只要带*符号的
于是常量指针表示为 const-----------int*------- //谁在前重点就是谁,不能改变,如这里常量对象不能变
指针常量 int*---------const-------- //指针描述符在前,指针是重点,指针本身不能改变 2、指针运算 因为指针也是一种数据类型。也可以参加一些运算。包括赋值运算、算术运算和关系运算。 如 int*p; p+3; //表示p所指地址后第三个数据地址。 ++,--表示所指地址下一个或前一个地址。 指针的关系运算指同类型的关系运算,不同类型指针之间关系运算没有任何意义。
相关文章推荐
- 鸡啄米:C++编程入门系列之二十八(数组、指针和字符串:指针的赋值和指针运算)
- C++编程入门系列之二十八(数组、指针和字符串:指针的赋值和指针运算)
- 二十七、数组、指针和字符串:指针变量的声明、地址相关运算
- 如何理解字符串赋值给指针与数组的区别
- 数组与字符串、字符指针与其他类型指针、赋值参数、指针参数以及引用参数、函数指针
- 指针与字符串的秘密&赋值运算返回值&printf()返回值
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
- iOS  日记2 --字符串赋值给指针与数组的区别
- 数组、指针和字符串:指针变量的声明、地址相关运算--“*”和“&”
- 《c和指针》3.1.3 二 、字符串常量 :不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组赋值
- 常量字符串与非常量字符串 字符数组与字符指针
- c中给字符数组,字符串指针赋值的方法总结
- c中给字符数组,字符串指针赋值的方法总结
- 字符串赋值 数组与指针的区别
- 浅谈C语言中变量、常量、数组、字符串、指针的地址
- 字符串的数组表示法&指针表示法&常量表示法
- 字符数组 字符指针 字符串常量
- C语言 第 7 节 如何将字符串指针指向的内容赋值给数组
- C语言回顾(六、基类型,数组指针,字符串指针,函数指针,文字常量区)——iOS开发基础
- 鸡啄米:C++编程入门系列之二十七(数组、指针和字符串:指针变量的声明、地址相关运算--“*”和“&”)