c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1876字,纯文字阅读大概需要3分钟。
内容图文
![c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量](/upload/InfoBanner/zyjiaocheng/1120/c14a61e9c75647b29110b7d74cccab83.jpg)
一、内存
/* 内存: 存在内存里的。 内存分了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 9 10 十六进制:就是逢16进1 有:0 1 2 3 4 5 6 7 8 9 a b c d e f 以0x开头 简单说1-10 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 16:0x10 0x35:53 0xa0:160 顺带说下: 二进制:0和1 0 1 10 八进制:0 1 2 3 4 5 6 7 */
二、指针变量
/* 指针变量:存放地址的变量。 语法:类型 *指针变量名; 赋值:指针变量名 = 地址; 在声明的时候初始化:类型 *指针变量名 = 地址; 例如: int num = 20; int *nump = #//存的是num的地址 打印指针变量: printf("%p \n %p \n",nump,&num); 注意:定义指针变量,有如下几种方式: 1、类型 * 变量名 ; 2、类型* 变量名 ; 3、类型 *变量名 ; 以上三种都可以,* 代表一个特殊类型。 类型* 构成了类型 */
上面介绍了怎么去定义一个指针变量,下面介绍怎么使用它。
/* 使用指针变量 语法: *指针变量名; 语义:这就可以访问你所指向的那块空间里的值了 千万要注意: 访问指针变量时加星号和不加星号的区别: int num; int *p = # 1.加星号代表,是访问它所指向的空间里面的值。*p 相当于 num; 2.不加星号代表,是访问它自己的空间里面的值。p 就是自己里面存的值 */ // 例如: int num = 10; int *pNum; pNum = # //注意:&不要省略! printf("%d %d\n",num,*pNum);//所以也就是说,*pNum == num; *pNum = 30; printf("num=%d\n",num);//30 num = 90; printf("*pNum=%d\n",*pNum); int num = 10; int *pNum = # (*pNum)++; //相当于num++ num=11 num += 20; printf("num=%d\n",num);//31int num = 10; int *pNum = # int *pNum2 = pNum; *pNum2 = 30; printf("num=%d *pNum=%d *pNum2=%d\n",num,*pNum,*pNum2);//30 30 30
一定要注意在使用指针变量的时候,加星号(*)和不加星号(*)的区别;同时指针变量也区别类型(区分类型是为了告诉指针,该去读取几个字节)。
什么类型的变量就用什么类型的指针去读取。
下面看一个例子:
int num1 = 10,num2 = 20; int *p1 = &num1; int *p2 = &num2; int *p3 = p2; *p2 = 40 ; p2 = p1; *p2 = 30; printf("num1 = %d num2 = %d *p1= %d *p2= %d *p3= %d ",num1,num2.*p1,*p2,*p3); /* 有兴趣的可以自己算下。 */
指针变量作为函数的参数:
/* 语法: 返回值类型 函数名(指针类型* 指针变量名){ } 例如: void test1(int* num){ } int main(int argc,const char argv[]){ int num = 10; test1(&num); } */
原文:http://www.cnblogs.com/bobo-pcb/p/4919833.html
内容总结
以上是互联网集市为您收集整理的c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量全部内容,希望文章能够帮你解决c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。