c语言学习的第12天
#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天的更多相关文章
- c语言学习笔记(12)——补码
补码 编码 在计算机中存储数据的方式 原码 也叫 符号--绝对值码 最高位0表示正 1表示负, 其余二进制位是该数字的绝对值的二进制位 如 5 ---- 00000101 -5 ---- 1111 ...
- Java语言学习day37--8月12日
今日内容介绍1.List接口2.Set接口3.判断集合唯一性原理 ###01List接口的特点 A:List接口的特点: a:它是一个元素存取有序的集合. 例如,存元素的顺序是11.22.33.那么 ...
- 12天学好C语言——记录我的C语言学习之路(Day 12)
12天学好C语言--记录我的C语言学习之路 Day 12: 进入最后一天的学习,用这样一个程序来综合考量指针和字符串的关系,写完这个程序,你对字符串和指针的理解应该就不错了. //输入一个字符串,内有 ...
- 12天学好C语言——记录我的C语言学习之路(Day 11)
12天学好C语言--记录我的C语言学习之路 Day 11: 因为指针部分比较的难,所以我们花费的时间也是最长的,希望大家耐的住性子,多多理解,多多打代码.好了,废话不多说,来看第11天的学习. //编 ...
- 12天学好C语言——记录我的C语言学习之路(Day 10)
12天学好C语言--记录我的C语言学习之路 Day 10: 接着昨天的指针部分学习,有这么一个题目: //还是四个学生,四门成绩,只要有学生一门功课没及格就输出这个学生的所有成绩 /*//progra ...
- 12天学好C语言——记录我的C语言学习之路(Day 9)
12天学好C语言--记录我的C语言学习之路 Day 9: 函数部分告一段落,但是我们并不是把函数完全放下,因为函数无处不在,我们今后的程序仍然会大量运用到函数 //转入指针部分的学习,了解指针是什么 ...
- 12天学好C语言——记录我的C语言学习之路(Day 8)
12天学好C语言--记录我的C语言学习之路 Day 8: 从今天开始,我们获得了C语言中很有力的一个工具,那就是函数.函数的魅力不仅于此,一个程序到最后都是由众多函数组成的,我们一定要用好函数,用熟练 ...
- 12天学好C语言——记录我的C语言学习之路(Day 7)
12天学好C语言--记录我的C语言学习之路 Day 7: 昨天进行了一天的数组学习,今天大家可以先写几个昨天的程序热热身,回顾回顾,然后今天第一个新程序也是关于数组的,比较难,准备好就开始啦! //输 ...
- 12天学好C语言——记录我的C语言学习之路(Day 6)
12天学好C语言--记录我的C语言学习之路 Day 6: 今天,我们要开始学习数组了. //①数组部分,数组的大小不能够动态定义.如下: //int n; scanf("%d,& ...
随机推荐
- 微信小程序-上传多张图片加进度条(支持预览、删除)
2018-12-24 详情示例见:https://www.cnblogs.com/cisum/p/9564898.html 2018-12-29 组件下载见:https://www.cnblogs.c ...
- 微信小程序-使用腾讯Wxpage
微信小程序想要更快的速度吗? 满足你 https://github.com/tvfe/wxpage#-c%E5%AE%9A%E4%B9%89 使用超简单(导入wxpage.js,最后使用对象名:P): ...
- bat文件转换为exe文件
批处理文件转换为exe文件(简单的处理文件),点击下载 使用超简单的了,不多说.
- 【Excle数据透视】如何创建多条件汇总的数据透视表
创建多条件的数据透视表,源数据如下: 插入数据透视表 根据需求拖拽字段(统计该地区下销售人员销售业绩) 数据透视结果 数据透视表布局的各个区域说明 区域 说明 数值 用于显示汇总值数据 行标签 用于将 ...
- 设计一个线程安全的单例(Singleton)模式
在设计单例模式的时候.尽管非常easy设计出符合单例模式原则的类类型,可是考虑到垃圾回收机制以及线程安全性.须要我们思考的很多其它.有些设计尽管能够勉强满足项目要求,可是在进行多线程设计的时候.不考虑 ...
- 多通道 移位寄存器 verilog
// Quartus II Verilog Template // Basic 64-stage shift register with multiple taps module basic_shif ...
- kaptcha的和springboot一起使用的简单例子
https://blog.csdn.net/xiaoyu19910321/article/details/79296030
- LeetCode(100)题解--Same Tree
https://leetcode.com/problems/same-tree/ 题目: Given two binary trees, write a function to check if th ...
- js异步请求发展史和yield
万恶的回调 对前端工程师来说,异步回调是再熟悉不过了,浏览器中的各种交互逻辑都是通过事件回调实现的,前端逻辑越来越复杂,导致回调函数越来越多,同时 nodejs 的流行也让 javascript 在后 ...
- 利用python进行数据分析之pandas入门
转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...