C语言——指针

指针定义:

指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。   

 

提示:

1.在大多数的操作系统上,程序不允许访问地址为0的内存,因为该内存是操作系统保留的。

然而,内存地址0有特别重要的意义,它表明该指针不指向一个可访问的内存位置。

但按照惯例,如果指针包含空值(零值),则假定它不指向任何东西。

所有指针在创建时都要初始化,如果不知道他指向什么就将0赋值给他。必须初始化指针,没有被初始化的指针被称为失控指针(野指针)

 

2.以下选项中,对基本类型相同的指针变量不能进行运算的运算符是————“+”

解释:两个地址相加无意义也可能越界,所以规定不允许指针相加。

 

3. *p++ 、(*p)++ 、*++p、++*p的区别

int a[5]={1,2,3,4,5};
int *p = a;

 

(1)*p++ 和 *(p++)没有区别  先取指针p指向的值(数组第一个元素1),再将指针p自增1;
        cout << *p++; //  结果为 1
        cout <<(*p++);  // 1

(2)(*p)++  先去指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2
        cout << (*p)++; //  1
        cout <<((*p)++)  //2


(3)*++p    先将指针p自增1(此时指向数组第二个元素),* 操作再取出该值

        cout << *++p; //  2
        cout <<(*++p)  //2

(4)++*p  先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2)
        cout <<++*p; //   2    
        cout <<(++*p)  //2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值