1. 说明:

1)变量p本身的地址在编译时确定,它是不变的;变量p存的内容是一个地址,在运行时才能确定,它是变化的

2)数组arr的地址在编译时确定,它是不变的;数组arr村的内容是一个数据

3)指针变量p能以数组的方式访问;数组arr能以指针的形式访问

1.1 代码:

#include <stdio.h>int main(void)
{int i = 10;int *p = &i;int arr[5];p[0] = 1;*(arr+0) = 2;printf("&i = %p\n", &i);printf("p = %p, &p = %p\n", p, &p);printf("arr = %p, &arr = %p\n", arr, &arr);printf("p[0] = %d, *(arr+0) = %d\n", p[0], *(arr+0));return 0;
}

1.2 结果:

baoli@ubuntu:~/c$ ./a.out
&i = 0x7ffe9c0feb04
p = 0x7ffe9c0feb04, &p = 0x7ffe9c0feb08
arr = 0x7ffe9c0feb10, &arr = 0x7ffe9c0feb10
p[0] = 1, *(arr+0) = 2

2. 说明:

1)定义为数组时,不能声明为指针

2)定义为指针时,不能声明为数组

2.1 代码:

#include <stdio.h>int array[5];
extern int *array;int *p;
extern int p[];int main(void)
{return 0;
}

2.2 编译:

baoli@ubuntu:~/c$ gcc test.c -g
test.c:4:13: error: conflicting types for ‘array’
extern int *array;^
test.c:3:5: note: previous declaration of ‘array’ was here
int array[5];^
test.c:7:12: error: conflicting types for ‘p’
extern int p[];^
test.c:6:6: note: previous declaration of ‘p’ was here
int *p;^

C语言高级编程:指针和数组相关推荐

  1. c语言高级程序设计第五版PDF,C语言高级编程.pdf

    C语言高级编程 概述 由几个测试程序说开去 预编译与宏 高级预编译介绍 宏的高级用法 变量 变量分类详细解析 我的变量去哪儿了? 大小端对变量的影响 内存与指针 常见内存使用错误大观 指针,又是指针! ...

  2. c语言数组实际作用,要玩转C语言 就要深入指针和数组这两个概念

    原标题:要玩转C语言 就要深入指针和数组这两个概念 指针 预备知识 在深入理解指针之前,我认为有必要先复习或者学习一下计算机原理的基础知识. 计算机是如何从内存中进行取指的? 计算机的总线可以分为3种 ...

  3. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  4. 鼠标绘图 c语言,c语言高级编程技术教程 图形显示方式与鼠标输入.doc

    c语言高级编程技术教程 图形显示方式与鼠标输入 c语言高级编程技术教程 图形显示方式和鼠标输入 图形显示方式和鼠标输入 问题的提出编写程序,使用鼠标进行如下操作:按住鼠标器的任意键并移动,十字光 标将 ...

  5. c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用

    指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...

  6. 高级编程中C语言属于,c语言高级编程

    c语言高级编程 C高级编程 责任编辑:admin 更新日期:2005-8-6 深入了解C语言(函数的参数传递和函数使用参数的方法) tangl_99(原作) 关键字 C语言,汇编,代码生成,编译器 C ...

  7. 《go语言圣经》+《Mastering.GO-cn》+《go语言高级编程》PDF下载

    公众号[爱吃橙子的搬砖小徐]开通啦,后续将会同步更新,欢迎订阅 回复[java面试]获得两套面试宝典 回复[golang]获得go语言学习三部曲 <go语言圣经>+<Masterin ...

  8. matlab高级教程教材,MATLAB语言高级编程 PDF_IT教程网

    资源名称:MATLAB语言高级编程 PDF 本书共分8章,主要介绍了matlab的概述.matlab安装与工作桌面:matlab的编程基础,包括matlab的变量.matlab的运算符.矩阵的创建及运 ...

  9. C语言高级编程:二维数组、指针的指针、数组指针、指针数组

    1. 定义 int **p;  指针的指针 int (*p2)[5];  数组指针,指向一个数组 int *array[5];  指针数组,是一个int *类型数组 int array2[3][5]; ...

  10. 【嵌入式】C语言高级编程-长度为0的数组(05)

    00. 目录 文章目录 00. 目录 01. 什么是零长度数组 02. 零长度数组应用 03. 内核中的零长度数组 04. 指针可以代替零长度数组? 05. 附录 01. 什么是零长度数组 零长度数组 ...

最新文章

  1. 实验五:任意输入10个int类型数据,排序输出,再找出素数
  2. 2018年『web』开发者不得不知的技术趋势
  3. QT的QStackedWidget类的使用
  4. Foursquare引爆了什么
  5. Qt工作笔记-QML与C++交互
  6. MYSQL8 关键字(官方)
  7. LabVIEW通过ADO连接SQL Server 方法二
  8. 常见的防火墙技术介绍
  9. 小车手app安卓版下载_美森网校app下载_美森网校安卓版下载[英语培训]
  10. WinRAR4.11激活
  11. 手机影音第十六天,集成eventbus代替广播 ;在音乐播放页面中间部分显示歌词
  12. web前端学习13-19(HTML常用标签)
  13. 投毒后门防御阅读笔记,What Doesn‘t Kill You Makes You Robust (er) Adversarial Training against Poisons and Back
  14. 计算机替换字体怎么操作,电脑替换文字怎么操作
  15. html 5 压缩zip,Zip
  16. APP运营如何实现流量变现,获取更高收益?
  17. Python123 练习7
  18. 【接口篇 / Wan】(6.4) ❀ 01. 拨号宽带经过防火墙后的速度变化 ❀ FortiGate 防火墙
  19. React.js加载组件以及JSX脚本处理代码
  20. 60条小妙招帮助你开车更省油

热门文章

  1. excel函数vloopup使用方法
  2. Oracle数据库分页的三种方法
  3. Android 设置Activity样式 透明度
  4. ASP.Net中怎样获得存储过程传出的参数。
  5. Hibernate配置数据源,数据库连接池
  6. 安卓使用jdbc连接mysql_Android:使用JDBC连接MySql
  7. html怎么使背景图片充屏,css如何使div背景图片填充
  8. linux内核关闭tcp校验,linux内核tcp调优规范与方案
  9. 蚂蚁算法求解tsp问题matlab,蚁群算法解决TSP问题的MATLAB程序
  10. 康力电梯开门不关门 服务器显示开门键动作,康力电梯门机故障代码