指针小笔记

原创 2015年07月09日 12:28:44

例1:

void func(char *ptr){
    ptr = "world";
}

int main(int argc, char *argv[]){
    char *str = "hello";

    func(str);
    printf("*str = %s\n", str);

    return 0;
}

(1)"hello","world"都在常量区,

假设"hello"的地址为0x0040A064,"world"的地址为0x0040A06A

(2)main函数中,指针str指向地址0x0040A064,

调用函数func,将这个地址作为参数传进去

(3)func函数中,指针ptr也指向地址0x0040A064,

在函数中改变了指针的值,让其指向了地址0x0040A06A

(4)func函数结束,局部变量 指针ptr被销毁

(5)回到main函数中,指针str依然指向地址0x0040A064,

输出的还是"hello"


例2:

void func(char **ptr){
    *ptr = "world";
}

int main(int argc, char *argv[]){
    char *str = "hello";

    func(&str);
    printf("*str = %s\n", str);

    return 0;
}

(1)"hello","world"都在常量区,

假设"hello"的地址为0x0040A064,"world"的地址为0x0040A06A

(2)main函数中,指针str指向地址0x0040A064,

而str本身的地址:&str=0x0056FF38(假设),将这个值作为参数传进func函数

(3)func函数中,指针ptr指向地址0x0056FF38,

*ptr还是一个指针,*ptr=0x0040A064,

函数内部改变了*ptr的值,*ptr=0x0040A06A,即改变了地址0x0056FF38中的值,现在内存单元0x0056FF38中存放的是0x0040A06A

(4)func函数结束,局部变量被销毁

(5)由于在func函数中改变了内存单元0x0056FF38中的值,即str现在指向地址0x0040A06A,也就是"world"所在地址,

此时的输出为"world"


参考下图:


版权声明:本文为博主原创文章,未经博主允许不得转载。

理解一个经典的指针小程序

分析关于指针的一个小程序#include #include void f(void) { int a[4]; int *b = malloc(16); int *c; ...
  • u012216524
  • u012216524
  • 2017年04月03日 17:46
  • 381

微信小程序_文笔记+(第一章)

一直说做个"笔记类"的小程序,今天终于发上来了,虽然"文笔记+"只有两个页面,但是笔记类的应用其实是很费时间的,因为要完成"增删改查"这几项功能,其实和数据库已经很类似了,下面还是老样子,注释和逻辑解...
  • siwen1990
  • siwen1990
  • 2017年01月30日 15:40
  • 591

微信小程序小笔记

关于微信小程序开发的笔记,主要介绍了模块化、全局的事件通知、5个页面的限制等。...
  • anyfive
  • anyfive
  • 2017年03月07日 11:42
  • 480

微信小程序热点云笔记demo 开源总结

因为公司的项目需要,我们自己开发了一个微信小程序的云笔记  开源地址 https://github.com/hotapp888/hotapp-notepad 云笔记功能特点...
  • yaoohfox
  • yaoohfox
  • 2016年11月29日 14:43
  • 620

史上最全小程序笔记整理

1、小程序目录结构 https://mp.weixin.qq.com/s?__biz=MzU5MzM4MjgzNw==&mid=2247483654&idx=1&sn=5f61592998fd2574...
  • sinat_35615296
  • sinat_35615296
  • 2018年01月05日 20:27
  • 108

指针小笔记1

指针小笔记1
  • liuboqiang2588
  • liuboqiang2588
  • 2017年04月17日 10:52
  • 73

C和指针 的读书笔记(自己整理)

第2章 环境:翻译环境: 源代码转化成可执行的机器指令。执行环境:用于实际执行代码。翻译:源文件-〉目标文件-〉可执行文件(通过链接器将多个目标文件捆绑在一起)编译过程:预处理器-〉源代码经过解析产生...
  • zhghost
  • zhghost
  • 2010年02月04日 12:28
  • 1982

C语言-------------指针小程序的练习

1、猜数:首先生成一个介于1-100之间的整数,从键盘不断输入数值直到该数值与生成的那个数相符为止,并打印出猜数的次数#include #include void creat(int *secr...
  • zyx6a
  • zyx6a
  • 2013年04月03日 21:34
  • 1182

C语言学习笔记-指针-郝斌老师讲解

指针:         内存单元的编号,就是地址。 指针就是地址,地址就是指针。 地址就是内存单元的编号。 指针变量就是存放地址的变量。 指针和指针变量是两个不同的概念 但是要注意...
  • wind11ddaa
  • wind11ddaa
  • 2017年05月26日 18:27
  • 376

用指针方法对10个整数按由大到小的顺序排序

#include int main() { void sort(int x[],int n); //sort函数声明 int i,*p; int a[10]; p=a; /...
  • ZDF0414
  • ZDF0414
  • 2015年03月19日 11:16
  • 806
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指针小笔记
举报原因:
原因补充:

(最多只允许输入30个字)