指针变量存储的地址如果一样

1 #include<stdio.h>
2 int main()
3 {
4     char *p1 = 100;
5     char *p2 = 100;
6     printf("%p %d\n%p %d", p1, p1, p2, p2);
7     return 0;
8 }

这样p1,p2指针变量的地址是相同的,因为它们存储的是相同的地址100,如果把p1的值改成不是100比如200,那么p1,p2的地址将不再相同,编译器不会那么笨,明明一样的值,还给你开辟两个内存分别去存储。^_^

时间: 2024-12-25 05:05:32

指针变量存储的地址如果一样的相关文章

指针变量作为函数参数(1)

普通函数参数 下面程序试图改变main函数中a和b的值 #include<stdio.h> void fun(int x,int y) { int c; c=a; a=b; b=c; } int main() { int a=1,b=2; fun(a,b); printf("a=%d b=%d\n",a,b); return 0; } 函数参数传递分析: 实参: &a 28ff18 a  1 &b 28ff14 b  2 在将实参传递给形参的时候,编译器将实

指针、指针变量梳理,取地址与取值运算

#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int a = 199; int *p; p = &a; printf("a=%d\n", a); printf("&a=%d\n", &a); printf("&p=%d\n", &p); printf("p=%d\n", p); printf(&q

c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量

一.内存 /* 内存: 存在内存里的. 内存分了N多个小空间,每个小空间1个字节 每个小空间有它自己的地址.每个地址之间差1 int类型占用4个字节,等于占了4个空间(有4个地址),不需要记住4个地址,而记住首地址就行了(因为首地址相当于入口或者生活中的门) 指针: 指针就是地址,地址就是指针. 地址:内存的地址 内存中的地址: 其实也是从1开始编号,然后一直自增 1M内存,1024个地址 0x7fff5fbff7cc:这叫16进制 十进制:逢10进1 有:0 1 2 3 4 5 6 7 8 9

指针的含义——指针变量、指针的指针、指针使用的注意

指针其实很容易理解的,其他并不是大家想象的那么神奇,那么难. 一.指针的含义:指针其实就是一个变量,它所存放的不是数据,而是数据在内存中地址.当然指针也可以存放函数(方法)的地址,后面会讲到的.声明指针的关键符是*号,指向地址的关键符是&. 二.指针变量: 例如1:#include <stdio.h> int main {  int a =10;   //第一一个变量a,赋值为10 int *p = &a;   //p就是一个指针变量,所指向的就是变量a的地址 printf(&

C语言的指针变量

C语言的指针变量 在C语言中,变量是固定范围的存储空间,它存储的是赋给他的值, 比如: int a = 12; /* 这里是定义一个整型变量a,并把12这个值存储在a的地址空间上 这个地址空间是系统随机分配的,对用户是透明的不用关心 */ 指针变量存储的是变量的地址, 比如: int a = 12 , *b; b = &a; /*如上,定义了一个整型变量a并赋值12,一个整型指针变量b 然后 用 & 取值运算符 取到变量a的地址空间值,存储到指针变量b中 此时变量b中存储的是变量a中的地址

字符串指针变量与字符数组的区别

使用字符串指针变量与字符数组的区别 (1)分配内存 设有定义字符型指针变量与字符数组的语句如下: char *pc ,str[100]; 则系统将为字符数组str分配100个字节的内存单元,用于存放100个字符.而系统只为指针变量pc分配4个存储单元,用于存放一个内存单元的地址.(2)初始化赋值含义 字符数组与字符指针变量的初始化赋值形式相同,但其含义不同.例如: char str[ ] ="I am a student ! " ,s[200]; char *pc="You

&lt;22&gt;【掌握】指针变量概念及定义方法+【理解】两变量值交换的方法+【掌握】总结*使用场合

[掌握]指针变量概念及定义方法 1.指针变量 用来存放地址的变量,就是指针变量 2.指针? 就是地址,地址是个常量 3.指针变量的定义 数据类型 *指针变量名; int *p; //定义了一个指针变量,变量名是p //int表示,p只能存放一个int类型的变量的地址 char *p1; //定义了一个指针变量,变量名是p1 //p1只能存放一个char类型数变量的地址 int num=10; char *p = &num; //警告 4.指针变量定义的注意事项 1)“*” 必须得有,如果没有就相

[日常] C语言中指针变量

CPU 访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址.编译和链接过程的一项重要任务就是找到这些名称所对应的地址. #include <stdio.h> //指针变量测试 //指针变量存储的值是另一个变量的地址,也就是说改指针变量指向了另一个变量 int main(){ int a=10; int c=20; //1.打印出变量的内存地址 printf("%#X \n",(unsig

C语言-指针变量的理解

a指针变量也是变量,只不过是内存中存的是变量i的内存地址.a=&i 赋值给a的是变量i的内存地址*a是用代表内存地址为a里存储的内容可以对指针变量a取内存地址 &a 验证过程: 打印 a 验证 指针变量a存了i的内存地址62fe4c. 打印 星号a 验证 通过内存地址 a 找到 内存地址存储的内容 3 sizeof 确认64位操作系统中,int变量 i 占4字节,指针变量a占8个字节. 打印 &a ,推测 62fe4c - 4 - 8 = 62fe41 那么 指针变量的内存地址应该