在线编程在线课堂在线测评Anycodes在线编程

编程论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

How to use bs4??
本帖最后由 carry0987 于
Double Queue 问题描述 : The new founded Balkan Investment Group Bank (
John 问题描述 : Little John is playing very funny game
linux-command Linux命令大全搜索工具,内容包含Linux命令
Coati 是一款跨平台的代码查看工具,适用于 C/C++ 和 Java。商业软件。特性:1. 索引
系统可承载海量并发,消息收发确认机制 保障消息必达 系统采用动态智
全平台视频监控,支持安卓苹果以及pcweb,支持海康大华等主流dvr,全部源码以及文档 单聊、群聊、商
如何访问类的私有属性? 下面以 TPathData 为例,
问题:从 XE4 以来,Firemonkey 曲线绘图在移动平台不平滑的问题一直令人诟病,提交到官方的 QC 也是族繁不及备载,官方似乎有意的
操作数据库(RODBC)   odbcConnect(dsn, uid="", p
数据模式:mode函数显示任何对象的模式。常见的单个的
系统可承载海量并发,消息收发确认机制 保障消息必达 系统采用动态智
RabbitMQ与PHP(一) 项
Iease团队扩编预备中,盼望能有Ruby或者java工程师加盟。全职兼职都可以。有爱好的伴侣请与我接洽。 邮件:i
ruby 怎么设置装备摆设GTK2,求教指导下!
#include #include #include #include using namespace std; int main() {
标题如图所示: 有n盏灯,编号1~n。一开端灯都是关着的
成熟的消息收发确认机制,支持万人大群 支持开发自定义的消息sdk接口,扩展性超强 支持单/
成熟的消息收发确认机制,支持万人大群 支持开发自定义的消息sdk接口,扩展性超强 支持单/
1. 注意列表和集合的区别 set 列表表现形式: list_1
Ajax   Ajax即“Asynchronous Javascript And
大师好,我比来在做布谷鸟优
分辨提取A和B图像Harris角点,接下来须要对

[C语言分享] C语言--指针

[复制链接]
发表于 2016-1-11 19:50:54 | 显示全部楼层 |阅读模式
一、指针

1.指针声明格式

1> 格式:变量类型 *变量名。举例:char *p,定义了一个指针变量p,只能存储地址
 * 记住*不是指针变量名,只是指针的一个标志
2> 作用:指针就一个作用,存储地址,并且根据地址值访问对应的存储空间
3> 例子

C语言--指针

C语言--指针

C语言--指针

C语言--指针
  1. 1 int main()
  2. 2 {
  3. 3     int a = 90;
  4. 4     int *p ;
  5. 5     p = &a;
  6. 6     return 0;
  7. 7 }   
复制代码
指针代码
 * 代码在内存中的表示

C语言--指针

C语言--指针

 * 注意点:① int *p只能指向int类型的数据 ②指针变量为经过初始化,不要拿来间接访问其    他存储空间 ③ 不允许这样写:*p = &a ,*p代表访问指针p所指向的存储空间 ④ 定义变量  是的*仅仅是一个象征,没有其他特殊含义
二、指向指针的指针

1.举例

  char a='A';
  char *p = &a; // 指向char类型存储空间的指针
  char **pp = &p; // 指向指针的指针
  char ***ppp = &pp; // 三级指针(不经常用)

2.指针应用

1> 实现调用一个函数,得到多个返回值

C语言--指针

C语言--指针

C语言--指针

C语言--指针
  1. 1 #include <stdio.h>
  2. 2
  3. 3 int sumAndMinus(int num1, int num2, int *num3)
  4. 4 {
  5. 5     *num3 = num1 - num2;
  6. 6     return num1 + num2;
  7. 7 }
  8. 8
  9. 9
  10. 10 int main()
  11. 11 {
  12. 12     int a = 12;
  13. 13     int b = 8;
  14. 14     int minus;
  15. 15     int sum = sumAndMinus( a, b, &minus);
  16. 16     return 0;
  17. 17 }  
复制代码
多返回值
3.指针占用内存

 * 指针占用内存与具体编译器有关,在Xcode中任何类型指针占用8个字节
三、指针与数组

1.数组的遍历

 //利用下标进行遍历
 int nums[3] = {1,2,3,}
 for(int i = 0;i < 3; i++)
  {
   printf("%d\n", nums);
  }
2.利用指针对数组进行遍历

 int nums[3] = {1,2,3,};
 int *p = &nums ;
 //指针p指向数组的首元素地址;
 //(p+1)指向 nums[1];
 for(int i = 0;i < 3; i++)
  {
   printf("%d\n", *(p+i));
   printf("%d\n", p[i ]);
  }
四、指针与字符串、指针数组

1.字符数组与字符串的比较

 char c1[] = "name";
 //上面这行代码表示的是字符数组,所表示的是字符串变量
 char *c2 = "name";
 //上面这行代码。指针变量c2指向的是字符串首字母。它表所表示的是字符串常量
 //两行代码的不同,也与数据在内存中的存储有关
 char *c3 = "name";
 //注意:c2与c3所便是的是同一个地址
2.定义字符串的两种方式

1> 利用数组
 char c[] = "name";
 //特点:字符串里面的字符是可以修改的
 //使用场合:字符串的内容需要经常修改
2> 利用指针
 char *c = "name";
 //特点:字符串其实是一个常量字符串,里面的字符是不能修改的
 //使用场合:字符串的内容不需要修改,而且这个字符串经常使用
3.指针数组

1> 指针数组的定义
 char *name[3] = {"jack", "rose", "tom"};
2> 字符串的输入
 //新建一个字符数组,用来保存用户输入的字符串
 char name[20];
 // 数组名就表示数组首元素的地址
 scanf("%s", name);
五、指向函数的指针与返回指针的函数

1.返回指针的函数

 char *test()
 {
  return  "name";
 }
 int main()
  {
   char *p = test();
   return 0;
  }
2.指向函数的指针

void test()
{
  printf("调用了test函数");
}
int main()
{
  //(*p)是固定写法,代表指针变量p将来肯定是指向函数
  //左边的void :指针变量P指向的函数没有返回值
  //右边的():指针变量p指向的函数没有形参
  void (*p)();
  //函数名就是函数地址
  p = test;
  //函数调用的三 种方式
  (*p)();// 第一种方式:直接调用
  test();// 第二种方式:利用指针调用
  p();//第三种方式:利用指针调用
  return 0;
}
六、自我总结

好多同学说,指针很难,不容易理解,不过在我看来指针并没有什么,也只不过是一种数据类型,只不过指针存储的是地址,直接可以根据指针存储的地址对相应的内存空间进行操作。同时指针分很多类型,除去基本数据类型指针不说,还有指向函数的指针、指向指针的指针等等,有时读起来都挺拗口,但是这不阻碍我们的理解和使用,不要从心理上担心和害怕,任何类型的出现,都是为了方便我们,而不是给我们找麻烦。只要能从这个角度去理解,我相信拿下指针指日可待。

http://www.cnblogs.com/smqh/p/file:///C:UsersAdministratorAppDataRoamingTencentUsers865871666QQWinTempRichOle2OOV%3LPKDHIBJVWAKY0ZWY.jpg
http://www.cnblogs.com/smqh/p/file:///C:UsersAdministratorAppDataRoamingTencentUsers865871666QQWinTempRichOle2OOV%3LPKDHIBJVWAKY0ZWY.jpg



上一篇:C语言中的结构体
下一篇:C语言--位运算符
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复

使用道具 举报

发表于 2016-3-25 21:41:31 | 显示全部楼层
比我厉害多了
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2016-5-20 05:23:33 | 显示全部楼层
我来灌水
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2016-6-2 14:35:49 | 显示全部楼层
嘿嘿嘿
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2016-6-4 17:01:24 | 显示全部楼层
看的不是很懂
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2016-7-13 05:22:41 | 显示全部楼层
学习编程就是走向死亡
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2016-10-28 11:55:07 | 显示全部楼层
萌萌哒
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2016-11-17 10:03:47 | 显示全部楼层
比我厉害多了
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2016-12-28 19:19:46 | 显示全部楼层
约不约
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发表于 2018-9-20 11:50:52 来自手机 | 显示全部楼层
总结的很棒
在线编程(http://www.anycodes.cn)&编程论坛(http://www.52exe.cn)感谢您的支持!
回复 支持 反对

使用道具 举报

发布主题 上个主题 下个主题 快速回复 返回列表 官方QQ群
在线客服
客 服 中 心
群 机 器 人
网站二维码
收 起 客 服

QQ|Archiver|手机版|小黑屋|Anycodes ( ICP14002806Anycodes在线编程

GMT+8, 2018-11-22 01:10 , Processed in 1.736405 second(s), 98 queries .

Powered by Anycodes

© 2001-2013 吉林市群龙科技有限公司 Inc.

快速回复 返回顶部 返回列表