C指针操作(二)
来源:互联网 发布:淘宝代销能刷单吗 编辑:程序博客网 时间:2024/05/22 06:46
#include <iostream>#include<stdio.h>using namespace std;int main(){ char a[20]="You_are_a_girl"; char *p=a; char **ptr=&p; printf("p=%d\n",p); printf("&p=%d\n",&p); printf("*p=%c\n",*p); printf("ptr=%d\n",ptr); printf("&ptr=%d\n",&ptr); printf("*ptr=%d\n",*ptr); printf("&*ptr=%d\n",&*ptr); printf("**ptr=%c\n",**ptr); cout<<p<<endl; cout<<&p<<endl; cout<<*p<<endl;}
p=7012076 &p=7012072 *p=Yptr=7012072 &ptr=7012068 *ptr=7012076 &*ptr=7012072 **ptr=YYou_are_a_girl 0x6afee8 YProcess returned 0 (0x0) execution time : 0.013 sPress any key to continue.
还是分析那四个元素,注意指针类型跟指针所指元素类型的区别
运算符&和*
&:原有类型加个:*
*:原有类型减个:*
int a=12; int b; int *p; int **ptr;p=&a; //&a 的结果是一个指针类型是 int*,指向的类型是 //int,指向的地址是a的地址。*p=24; //*p 的结果,在这里它的类型是 int,它所占用的地址是 //p 所指向的地址, 显然, *p 就是变量 a。ptr=&p; //&p 的结果是个指针,该指针的类型是 p 的类型加个*, //在这里是 int **。该指针所指向的类型是 p 的类型, 这 //里是 int*。 该指针所指向的地址就是指针 p 自己的地址。*ptr=&b; //*ptr 是个指针, &b 的结果也是个指针,且这两个指针 //的类型和所指向的类型是一样的,所以用&b 来给*ptr 赋 //值就是毫无问题的了。**ptr=34; //*ptr 的结果是 ptr 所指向的东西,在这里是一个指针, //对这个指针再做一次*运算,结果是一个 int 类型的变量。
阅读全文
0 0
- C指针操作(二)
- C语言指针(二)
- c与指针(二)
- C/C++ 指针 (二)
- C和指针(二)
- 《c和指针》(二)
- 《c和指针》(二)
- C语言指针(二)
- C指针基础(二)
- C++primer 指针(二)
- C语言指针(二)指向指针的指针
- 【C语言复习(二十七)】野指针和内存操作分析
- C Primer Plus学习 二十一 指针操作
- C程序设计语言--指针与数组(二) 指针数组 数组指针 函数指针 指针函数
- 一起talk C栗子吧(第一百四十二回:C语言实例--文件操作:基于文件指针二)
- C语言指针详解(二)
- C/C++指针精髓(二)
- 杂论C语言指针笔记(二)
- android面试题材
- BZOJ4514: [Sdoi2016]数字配对
- 视频播放
- DOS中“%”的用法
- $.ajax()方法各参数详细了解
- C指针操作(二)
- Android -- PackageManagerService初始化分析
- oracle中的dual详解
- 数据库之数据类型
- Android Studio项目目录结构介绍
- Android之从网络中获取数据并返回客户端的两种方式:XML格式返回与Json格式返回
- Java上机练习:Calendar类实现万年历功能
- thread20
- save the transient instance before flushing