分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

指针是什么?

指针是一变量或函数的内存地址,是一个无符号整数,它是以系统寻址范围为取值范围,32位,4字节。


指针变量:

存放地址的变量。在C++中,指针变量只有有了明确的指向才有意义。


指针类型

int*ptr; // 指向int类型的指针变量char*ptr;float*ptr;


指针的指针:

char*a[]={"hello","the","world"};char**p=a;p++;cout<<*p<<endl; // 输出the


函数指针:

指向某一函数的指针,可以通过调用该指针来调用函数。

例子:

#include <stdio.h>#include <io.h>#include <stdlib.h>#include <iostream>using namespace std;int max(int a, int b){ return a>b?a:b;}int main(int argc, char* argv[]){ int a=2,b=6,c=3; int max(int, int); int (*f)(int, int)=&max; cout<<(*f)((*f)(a,b),c); return 0;}// Output:/*6*/


指针数组:

指向某一种类型的一组指针(每个数组变量里面存放的是地址)

int* ptr[10];


数组指针:

指向某一类型数组的一个指针

int v[2][10]={{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}};int (*a)[10]=v; // 数组指针cout<<**a<<endl; // 输出1cout<<**(a+1)<<endl; // 输出11cout<<*(*a+1)<<endl; // 输出2cout<<*(a[0]+1)<<endl; // 输出2cout<<*(a[1]+1)<<endl; // 输出12cout<<a[0]<<endl; // 输出v[0]首地址cout<<a[1]<<endl; // 输出v[1]首地址


int* p与(int*) p的区别

int* p; // p是指向整形的指针变量(int*) p; // 将p类型强制转换为指向整形的指针


数组名相当于指针,&数组名相当于双指针


char* str="helloworld"与char str[]="helloworld"的区别

char* str="helloworld"; // 分配全局数组,共享存储区char str[]="helloworld"; // 分配局部数组

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

C 指针总结相关推荐

  1. MIT 6.s081学习笔记

    MIT 6.s081学习笔记 introduction 计算机组织结构: 最底部是一些硬件资源,包括了CPU,内存,磁盘,网卡 最上层会运行各种应用程序,比如vim,shell等,这些就是正在运行的所 ...

  2. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

  3. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  4. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  5. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值

    1. 变量声明 要单纯声明一个变量,可以通过 var 关键字,如下所示: var s string 该示例只是声明了一个变量 s,类型为 string,并没有对它进行初始化,所以它的值为 string ...

  6. c/c++中的函数指针和指针函数

    定义 1.指针函数,本质是函数,返回值为指针,形如,int *pfun(int, int),由于"*"的优先级低于"()"的优先级,所以等同于int *(pfu ...

  7. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  8. 【数据结构】链表中的 指针,地址

    数据结构中跳过集合,直接开始线性结构 线性结构中单链表的操作涉及到给一个变量赋值地址,所以涉及到了指针 通过指针里的地址很方便找到节点 但指针这里绕了我很长时间,不论学了多少遍也不敢说把指针学会了 地 ...

  9. Qt实现 指针式时钟+动态时钟 (详细注释)

    先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...

  10. 【C语言】数组指针与指针数组的区分与应用

    这里以一道C语言题--输出矩阵两个对角线上的数(二维数组)为例 7-57 输出矩阵两个对角线上的数(二维数组) (6 分) 编写程序,将数据输入一个n * n二维数组中,输出矩阵两个对角线上的数.假设 ...

最新文章

  1. 部署Symantec Antivirus 10.0网络防毒服务器之六
  2. Android新权限机制 AppOps
  3. 性能分析:hash索引导致delete慢
  4. VR的风口,让UWA借你一双翅膀
  5. ajax核心代码提交,ajax表单在Asp.net核心提交后的RedirectToAction
  6. 架构师成长系列 | 云原生时代的 DevOps 之道
  7. 25个优秀的Ajax技术和实例
  8. 如何在腾讯云上安装Cloud Foundry
  9. openresty—实现缓存前移
  10. Java-Tomcat 5.5 下的JNDI
  11. Doris之BE的所有配置项(全面)
  12. 《OpenGL超级宝典》第一章:3D图形和OpenGL简介
  13. iis在xp3上的部署
  14. matlab 仿真逆变电路,逆变电路的MATLAB仿真研究论文.doc
  15. 开机后显示服务器正在启动,电脑开机后卡在Windows正在启动界面上怎么办?
  16. 6plus经常显示无服务器,苹果6plus屏幕失灵怎么办?如何解决?
  17. 智能硬件产品盈利模式
  18. 1rem等于多少px (rem和px怎样转换)
  19. Dokuwiki模版Vector使用总结
  20. Web端性能测试和安全测试要点

热门文章

  1. 我们需要现在就进入LTE时代
  2. .NET (C#) Internals: ASP.NET 应用程序与页面生命周期——吴秦(Tyler)
  3. 802.1x 客户端获取ip过程 很详细
  4. 先给自己定个小目标,比如写个爬虫程序
  5. MySQL utf8mb4与emoji表情
  6. 一个有趣的Script脚本工具
  7. android 强制设置横屏 判断是横屏还是竖屏
  8. [数据库]简单SQL语句总结
  9. 没有对“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files”的写访问权限...
  10. Openfiler开启iSCSI服务(iSCSI Target)