#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. iOS后台解析

    iOS后台 上个月给小妹买了一台6s 她问我双击 Home 键之后 弹出的那些应用会不会耗电 我找到一篇文章 正好说的就是这个问题 摘要翻译一下 原文地址 http://www.speirs.org/ ...

  2. MySQL5.6安装图解(windows7/8_64位)

    这篇文章主要内容是关于MySQL5.6安装图解,希望通过这篇文章顺利解决大家安装MySQL5.6的问题,再也不用为了安装烦恼. 1. 下载MySQL2. 解压MySQL压缩包将以下载的MySQL压缩包 ...

  3. vue2.X 自定义 侧滑菜单 组件

    1.vue2.0 封装 侧滑菜单组件 Sidebar.vue <!-- 侧滑菜单 组件 --> <template> <div> <transition na ...

  4. shell程序

    例一:helloworld #!/bin/sh -x message="hello" read name echo "$message ,$name" 例二:选 ...

  5. Material Design Get Started

    使用Material Design设计应用: Take a look at the material design specification. Apply the material theme to ...

  6. HDU 5042 GCD pair 预处理+二分 分段

    点击打开链接 #include <stdio.h> #include <string.h> #include <iostream> #include <cma ...

  7. 3、C++新的关键字

        C++ 添加了一些全新的关键字. 1.new     new 来进行动态内存的分配,而delect 则是进行内存的释放, 申请的方式: 变量申请: int *p = new int; // 申 ...

  8. Oracle在plsql中修改数据

    Oracle在plsql中想要修改数据,有两种方式: a.使用rowid+点击锁图标,语句为: select t.*,rowid from T_BIC_PLY_MAIN t;   b.使用for up ...

  9. JAVA实现KNN分类

    转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/51064307 http://www.llwjy.com/blogdetail/f ...

  10. 【强网杯2018】逆向hide

    这是事后才做出来的,网上没有找到现成的writeup,所以在这里记录一下 UPX加壳,而且linux下upx -d无法解,也无法gdb/ida attach 因为是64位,所以没有pushad,只能挨 ...