C语言高级编程:指针和数组
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语言高级编程:指针和数组相关推荐
- c语言高级程序设计第五版PDF,C语言高级编程.pdf
C语言高级编程 概述 由几个测试程序说开去 预编译与宏 高级预编译介绍 宏的高级用法 变量 变量分类详细解析 我的变量去哪儿了? 大小端对变量的影响 内存与指针 常见内存使用错误大观 指针,又是指针! ...
- c语言数组实际作用,要玩转C语言 就要深入指针和数组这两个概念
原标题:要玩转C语言 就要深入指针和数组这两个概念 指针 预备知识 在深入理解指针之前,我认为有必要先复习或者学习一下计算机原理的基础知识. 计算机是如何从内存中进行取指的? 计算机的总线可以分为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 ...
- 鼠标绘图 c语言,c语言高级编程技术教程 图形显示方式与鼠标输入.doc
c语言高级编程技术教程 图形显示方式与鼠标输入 c语言高级编程技术教程 图形显示方式和鼠标输入 图形显示方式和鼠标输入 问题的提出编写程序,使用鼠标进行如下操作:按住鼠标器的任意键并移动,十字光 标将 ...
- c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用
指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...
- 高级编程中C语言属于,c语言高级编程
c语言高级编程 C高级编程 责任编辑:admin 更新日期:2005-8-6 深入了解C语言(函数的参数传递和函数使用参数的方法) tangl_99(原作) 关键字 C语言,汇编,代码生成,编译器 C ...
- 《go语言圣经》+《Mastering.GO-cn》+《go语言高级编程》PDF下载
公众号[爱吃橙子的搬砖小徐]开通啦,后续将会同步更新,欢迎订阅 回复[java面试]获得两套面试宝典 回复[golang]获得go语言学习三部曲 <go语言圣经>+<Masterin ...
- matlab高级教程教材,MATLAB语言高级编程 PDF_IT教程网
资源名称:MATLAB语言高级编程 PDF 本书共分8章,主要介绍了matlab的概述.matlab安装与工作桌面:matlab的编程基础,包括matlab的变量.matlab的运算符.矩阵的创建及运 ...
- C语言高级编程:二维数组、指针的指针、数组指针、指针数组
1. 定义 int **p; 指针的指针 int (*p2)[5]; 数组指针,指向一个数组 int *array[5]; 指针数组,是一个int *类型数组 int array2[3][5]; ...
- 【嵌入式】C语言高级编程-长度为0的数组(05)
00. 目录 文章目录 00. 目录 01. 什么是零长度数组 02. 零长度数组应用 03. 内核中的零长度数组 04. 指针可以代替零长度数组? 05. 附录 01. 什么是零长度数组 零长度数组 ...
最新文章
- 实验五:任意输入10个int类型数据,排序输出,再找出素数
- 2018年『web』开发者不得不知的技术趋势
- QT的QStackedWidget类的使用
- Foursquare引爆了什么
- Qt工作笔记-QML与C++交互
- MYSQL8 关键字(官方)
- LabVIEW通过ADO连接SQL Server 方法二
- 常见的防火墙技术介绍
- 小车手app安卓版下载_美森网校app下载_美森网校安卓版下载[英语培训]
- WinRAR4.11激活
- 手机影音第十六天,集成eventbus代替广播 ;在音乐播放页面中间部分显示歌词
- web前端学习13-19(HTML常用标签)
- 投毒后门防御阅读笔记,What Doesn‘t Kill You Makes You Robust (er) Adversarial Training against Poisons and Back
- 计算机替换字体怎么操作,电脑替换文字怎么操作
- html 5 压缩zip,Zip
- APP运营如何实现流量变现,获取更高收益?
- Python123 练习7
- 【接口篇 / Wan】(6.4) ❀ 01. 拨号宽带经过防火墙后的速度变化 ❀ FortiGate 防火墙
- React.js加载组件以及JSX脚本处理代码
- 60条小妙招帮助你开车更省油
热门文章
- excel函数vloopup使用方法
- Oracle数据库分页的三种方法
- Android 设置Activity样式 透明度
- ASP.Net中怎样获得存储过程传出的参数。
- Hibernate配置数据源,数据库连接池
- 安卓使用jdbc连接mysql_Android:使用JDBC连接MySql
- html怎么使背景图片充屏,css如何使div背景图片填充
- linux内核关闭tcp校验,linux内核tcp调优规范与方案
- 蚂蚁算法求解tsp问题matlab,蚁群算法解决TSP问题的MATLAB程序
- 康力电梯开门不关门 服务器显示开门键动作,康力电梯门机故障代码