#include <stdio.h>

int main(void)

{

int *p;

int i=5;

char ch='A';

p=&i;

*p=99;

printf("i=%d,*p=%d\n",i,*p);

}

p=&i,这样变量p就保存了变量i的地址,*p=99将99赋值给*p,又因为*p等价于变量i,因此变量i的值也变成99了

#include <stdio.h>

void swap(int i,int j)

{

int t;

t=i; i=j; j=t;

}

int main(void)

{

int a=3;

int b=5;

swap(a,b);

printf("a=%d,b=%d\n",a,b);

return 0;

}

a和b的值并没有互换,因为当swap函数执行完成后,a和b的内存空间自动被收回了,因此最后打印的a和b的值为主函数中a,b定义的值

#include <stdio.h>

void swap(int *i,int *j)

{

int t;

t=*i; *i=*j; *j=t;

}

int main(void)

{

int a=3;

int b=5;

swap(&a,&b);

printf("a=%d,b=%d\n",a,b);

return 0;

}

向swap传递了两个实参&a,&b,&a代表的是变量i,&b代表的是变量j,相当于i=&a,j=&b,因此*i等价于变量a,*j等价于变量b,因为在内存空间找到了变量a,b的地址,因此可以修改变量a,b的值,上面的例子说明了被调用函数通过指针可以修改调用函数多个变量的值,下面的例子也可以说明:

#include <stdio.h>

void swap(int *i,int *j)

{

*i=1;

*j=2;

}

int main(void)

{

int a=3;

int b=5;

swap(&a,&b);

printf("a=%d,b=%d\n",a,b);

return 0;

}

#include <stdio.h>

void f(int *pa,int len)

{

int i;

for (i=0;i<len;i++)

printf("%d",*(pa+i));

printf("\n");

}

int main(void)

{

int a[5]={1,2,3,4,5};

f(a,5);

return 0;

}

a[5]={1,2,3,4,5}定义的是一个数组,f(a,5);中的a代表的是a[0]的地址,pa就代表a[i]的地址,*(pa+i)中的pa+i分别代表了a[0]-a[5]之间的数组变量地址,上面的*(pa+1)也可以用pa[i]表示

c语言学习的第12天的更多相关文章

  1. c语言学习笔记(12)——补码

    补码 编码 在计算机中存储数据的方式 原码 也叫 符号--绝对值码 最高位0表示正 1表示负, 其余二进制位是该数字的绝对值的二进制位 如 5 ---- 00000101   -5 ---- 1111 ...

  2. Java语言学习day37--8月12日

    今日内容介绍1.List接口2.Set接口3.判断集合唯一性原理 ###01List接口的特点 A:List接口的特点: a:它是一个元素存取有序的集合. 例如,存元素的顺序是11.22.33.那么 ...

  3. 12天学好C语言——记录我的C语言学习之路(Day 12)

    12天学好C语言--记录我的C语言学习之路 Day 12: 进入最后一天的学习,用这样一个程序来综合考量指针和字符串的关系,写完这个程序,你对字符串和指针的理解应该就不错了. //输入一个字符串,内有 ...

  4. 12天学好C语言——记录我的C语言学习之路(Day 11)

    12天学好C语言--记录我的C语言学习之路 Day 11: 因为指针部分比较的难,所以我们花费的时间也是最长的,希望大家耐的住性子,多多理解,多多打代码.好了,废话不多说,来看第11天的学习. //编 ...

  5. 12天学好C语言——记录我的C语言学习之路(Day 10)

    12天学好C语言--记录我的C语言学习之路 Day 10: 接着昨天的指针部分学习,有这么一个题目: //还是四个学生,四门成绩,只要有学生一门功课没及格就输出这个学生的所有成绩 /*//progra ...

  6. 12天学好C语言——记录我的C语言学习之路(Day 9)

    12天学好C语言--记录我的C语言学习之路 Day 9: 函数部分告一段落,但是我们并不是把函数完全放下,因为函数无处不在,我们今后的程序仍然会大量运用到函数 //转入指针部分的学习,了解指针是什么 ...

  7. 12天学好C语言——记录我的C语言学习之路(Day 8)

    12天学好C语言--记录我的C语言学习之路 Day 8: 从今天开始,我们获得了C语言中很有力的一个工具,那就是函数.函数的魅力不仅于此,一个程序到最后都是由众多函数组成的,我们一定要用好函数,用熟练 ...

  8. 12天学好C语言——记录我的C语言学习之路(Day 7)

    12天学好C语言--记录我的C语言学习之路 Day 7: 昨天进行了一天的数组学习,今天大家可以先写几个昨天的程序热热身,回顾回顾,然后今天第一个新程序也是关于数组的,比较难,准备好就开始啦! //输 ...

  9. 12天学好C语言——记录我的C语言学习之路(Day 6)

    12天学好C语言--记录我的C语言学习之路 Day 6: 今天,我们要开始学习数组了. //①数组部分,数组的大小不能够动态定义.如下: //int n;   scanf("%d,& ...

随机推荐

  1. Log4cplus入门

    Log4cplus使用指南 1.  Log4cplus简单介绍 log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护 ...

  2. 《学习bash》笔记--调试shell程序

    在shell中,最简单的调试助手时输出语句echo,能够通过把很多echo语句放到代码中进行调试,但必须花费足够的时间以定位 要查看的信息.可能必须通过很多的输出才干发现要查找的信息. 1.set选项 ...

  3. vue install 注册组件

    1.myPlugin.js文件 let MyPlugin = {}; MyPlugin.install = function (Vue, options) { // 1. 添加全局方法或属性 Vue. ...

  4. fiddler不能监听 localhost和 127.0.0.1的问题 .

    localhost/127.0.0.1的请求不会通过任何代理发送,fiddler也就无法截获. 解决方案 用 http://localhost. (locahost紧跟一个点号) 用 http://1 ...

  5. Exception from HRESULT: 0x80070057 (E_INVALIDARG)

    Exception from HRESULT: 0x80070057 (E_INVALIDARG)异常. 解决方案:清除ASP.NET缓存目录中对应的应用程序目录. ASP.NET缓存目录如下: C: ...

  6. [原创] 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)

    最近,总算有时间去做些平时喜欢而没空去做的事情.一直觉得项目中使用的Image Loader适用性不强,昨晚在github随便逛逛,发现一个开源项目Android-Universal-Image-Lo ...

  7. Gson把对象转成json格式的字符串

    近期在做一个java web service项目,须要用到jason,本人对java不是特别精通,于是開始搜索一些java平台的json类库. 发现了google的gson.由于之前对于protoco ...

  8. ie6中利用jquery居中

    1.利用jquery居中代码 <script type="text/javascript"> $hwidth=parseInt($(window).width()); ...

  9. u-boot-2014.04分析

    本文档以smdk2410为例初步分析了u-boot-2014.04的配置.启动流程.代码重定向.内存分布. u-boot-2014.04这个版本的uboot从Linux内核中借鉴了很多东西,比如编译u ...

  10. 【Selenium + Python】之如何获取最新的报告以及os.path.getmtime与os.path.getctime的区别

    import os def new_file(test_dir): #列举test_dir目录下的所有文件(名),结果以列表形式返回. lists=os.listdir(test_dir) #sort ...