c指针点滴-指针与类型

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3
 4 //数据通信
 5 void main()
 6 {
 7     int num = 10;
 8     int *p1 = &num;
 9     int *p2 = p1;
10     printf("\n%d,%d,%d",num,*p1,*p2);
11     printf("\n%x,%x,%x",&num,p1,p2);
12
13     *p2 = 20;
14     printf("\n%d,%d,%d",num,*p1,*p2);
15     printf("\n%x,%x,%x",&num,p1,p2);
16     getchar();
17
18 }
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3
 4 void main1()
 5 {
 6     int num = 100;
 7     char ch = ‘a‘;
 8     double db = 19.7;
 9     char *p1,*px;
10     int *p2;
11     double *p3;
12     printf("\n%d,%d,%d",sizeof(ch),sizeof(num),sizeof(db));
13     printf("\n%d,%d,%d",sizeof(p1),sizeof(p2),sizeof(p3));//指针都是四个字节
14     p1 = &ch;
15     px = p1;//p1 px同一个类型 无错误
16     printf("\n%c",*px);
17     //p2 = p1;
18     printf("\n%x",p1);
19     //不是同一个类型的指针 不可以任意赋值
20     //不同的类型 大小不一样 解析方式不一样
21     getchar();
22
23 }
时间: 2024-11-09 06:49:02

c指针点滴-指针与类型的相关文章

C语言 详解多级指针与指针类型的关系

//通常意义上,指针类型指的是‘指针值’的类型,而不是‘指针’的类型 //V推论①:变量的步长只与变量的类型有关 //普通变量名是一段内存空间的标识,普通变量名代表的是一段内存空间, //对于复杂变量(例如指针):通常的指针的步长准确来说是指‘指针值’的步长,而不是指‘指针本身’的步长,指针本身的步长永远是4, //我们通常说的指针类型往往指的是‘指针值’的类型,,而不是‘指针’的类型 //而指针类型就是一个占4个字节大小内存空间的一种类型(从来没有人定义过指针类型,人们定义的都是‘指针值’的类

指针的类型和指针所指向的类型说明

指针的类型和指针所指向的类型说明 2010-03-17 15:24 1774人阅读 评论(1) 收藏 举报 编译器c 1.指针的类型 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部 分就是这个指针的类型.这是指针本身所具有的类型.让我们看看例一中各 个指针的类型: (1)int*ptr;//指针的类型是int* (2)char*ptr;//指针的类型是char* (3)int**ptr;//指针的类型是int** (4)int(*ptr)[3];//指针的类型是int(*)[3]

指针的内容 &nbsp; 指针的地址 指针所指向的内容 指针的类型 指针所指向的类型

这几个个东东很具有迷惑性. int a=10;      //假设a的地址是 0x0000004C int *p;           //假设p的地址是 0x0035FA94 p=&a; 指针的内容:指针里面存放的是地址. 指针p里面存放的是a的地址(&a).即指针p里面存放的内容是0x0000004C. 指针的地址:指针本身的地址. 指针p的地址就是&p.指针p的地址是0x0035FA94 指针所指向的内容:也就是指针里面存放的地址,那块地址里面存放的内容,通过对指针进行*引用

指针的类型与指针所指向的类型

指针的类型和指针所指向的类型很明显是不一样的东西,但好多情况下却容易忽视它们的区别.指针的类型是指针自身的类型,而指针所指向的类型是指针指向的数据(内存)的类型. 指针的类型 从语法上来看,我们只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型.如: 1 int *ptr; //指针的类型是 int* 2 char *ptr; //指针的类型是 char* 3 int **ptr; //指针的类型是 int** 4 int (*ptr)[3]; //指针的类型是 int(*)[3]

指针-&gt;指针所指向的类型

指针所指向的类型: 从语法上看,只需要将指针声明语句中指针的名字和指针描述符*去掉,剩下的就是指针所指向的类型: 指针声明 指针所指向的类型 int *p int :int 类型 chat *p chat :char 类型 int *p[3] int [3]:int 类型的数组 int (*p)[3] int ()[3]:int 类型的数组 int **p int *:int类型的指针 指针的类型(即指针本身的类型)和指针所指向的类型是两个不同概念: 区别: 指针的类型带指针的声明符,指针所指向

C++中常函数内部的this指针也是const类型的

代码中碰到一个奇怪的现象,在同样的函数中调用this指针,结果却有一个无法通过编译 1 // 读取连接信息 2 void ThirdWizardPage::ReadConnection() 3 { 4 QFile file("oracle.passwd"); 5 if(!file.open(QIODevice::ReadOnly)) 6 { 7 QMessageBox::information(this, tr("打开文件失败"), 8 tr("错误原因:

不要伤害指针(2)--指针的类型和指针所指向的类型

在谈论指针之前,永远记住指针的四要素:指针的类型,指针所指向的类型,指针指向的内存区,指针自身占据的内存. 1. 指针的类型: 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型.这是指针本身所具有的类型.让我们看看例一中各个指针的类型: 1 int*ptr;//指针的类型是int* 2 3 char*ptr;//指针的类型是char* 4 5 int**ptr;//指针的类型是int** 6 7 int(*ptr)[3];//指针的类型是int(*)[3] 8

函数指针(函数指针作为函数形参/函数类型作为函数返回类型)

函数指针是指向函数的指针变量. 因此"函数指针"本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址.有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的.函数指针有两个用途:调用函数和做函数的参数. 1 #include<stdio.h> 2 int max(int

c++ 动态判断基类指针指向的子类类型(typeid)

我们在程序中定义了一个基类,该基类有n个子类,为了方便,我们经常定义一个基类的指针数组,数组中的每一项指向都指向一个子类,那么在程序中我们如何判断这些基类指针是指向哪个子类呢? 本文提供了两种方法 (1) 自定义类id, (2)typeid 一.自定义id 如下所示基类father有两个子类son1 和 son2,我们在基类中定义类虚函数id,子类中分别重载了该函数,各个子类返回值都不同 1 class father 2 { 3 public: 4 virtual void fun() 5 {