![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习
Max-Init
Once you think of it,just do it
展开
-
有趣的指针(一)
考虑这样一个问题,如果要交换两个变量的值,怎么样定义函数,首先我们得有一个中间变量temp把,然后通过三次赋值(见代码)可以完成这个函数。那么问题来了,调用函数中的值可以因为被调函数而改变吗?答案是否定的。请看如下代码:void exchange(int x,int y);//函数申明void main(){ int s=6; int t=7; printf("调用之前s和t的值:%原创 2016-11-01 20:40:35 · 821 阅读 · 0 评论 -
字符串搜索函数的实现
char *find_char(char const *source,char const *chars){ char *string; if(source!=NULL||chars!=NULL) /*判断source和chars是否指向空指针*/ { while((*source++)!='\0') //只要指针没指到source的最后一个字符,循环一原创 2016-11-15 15:41:55 · 556 阅读 · 0 评论 -
python从入门到实践:9-6 冰淇淋小店
代码如下class Restaurant(): def __init__(self,restaurant_name,cuisine_type): #self.属性 的作用获取形参restaurant_name的值,并存储到restaurant_name中 #以供实例使用 self.restaurant_name = restaurant_nam原创 2017-08-29 22:00:29 · 4775 阅读 · 0 评论 -
for循环嵌套的两种用法
主要有两种类型的for循环嵌套,下面来介绍这两种类型循环嵌套的用法以及事例。一:内外循环独立进行#includevoid main() { int i,j; char a[5]="$$$$$"; for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%c",a[j]); printf("\n"); }原创 2016-10-29 19:09:20 · 104941 阅读 · 5 评论 -
指针漫谈(四):再论指针初始化的问题
先来看下指针初始化的一个例子:int a=10;int *p;//申明p=&a;//初始化,将a是地址赋给指针变量 一句句分析,首先,我们来看第一句,不多过多解释,相信大家可以理解,就是变量a的声明和初始化,从第二句话开始就是我们叙述的重点。为了大家对我叙述的内容更清楚,请参考上一篇博文指针漫谈(三),指针变量是p而不是*p,那为什么写成*p呢?就是一种标示而已,标志是一种指原创 2016-11-13 18:51:10 · 277 阅读 · 0 评论 -
递归剖析
C语言的函数调用可以在main()函数中进行,也可以它本身调用自己,这种调用方式就是递归。先看段代码:void up_and_down(int);int main(void){ up_and_down(1);//被调函数 return 0;}void up_and_down(int n){ printf("Level %d: n 的地址 %p\n", n, &原创 2016-11-01 16:03:54 · 524 阅读 · 0 评论 -
指向指针的指针
先来定义一个数组,如下:int a[2][2]={{2,1},{4,5}}; 如果我们要来访问数组里的每一个元素,应该怎么操作呢?对,用指针就可以完成,那一个指针*a可以完成吗? 答案是不可以的,为什么呢?这就与指向指针的指针有关系了,先来看这样一个问题,a代表是什么,你可能会说是数组名,不错,它就是一个数组名,但是更重要的一个属性是它等价于&a,也就是说a代表了数原创 2016-11-06 20:37:37 · 499 阅读 · 0 评论 -
printf()函数的参数传递
printf()参数传递实质是通过一个叫堆栈的东西进行,为了让大家对我的叙述有个直观的理解:(先看看一个图) 不知道大家看明白这个用%ld来打印出的这个结果的问题没,是不是%ld不能用来打印一个float或者double类型的值呢?答案是可以打印,那为什么会打印为完全错误的值呢?这就与printf函数的参数传递就有关系了。下面我将详细的叙述这个过程: 首先,变原创 2016-10-26 17:29:01 · 7278 阅读 · 0 评论 -
++运算的奇妙之处
首先请大家看两个相似的程序:第一个:#includeint size;size=1;void main(){ while(++size { printf("your size=%d\n",size); }}第二个:#includeint size;size=1;void原创 2016-10-27 22:19:13 · 432 阅读 · 0 评论 -
从while(n!=0)说什么是真
仍旧是先看两端代码:first:#includeint n=5;void main() { while(n!=0) { printf("%d\n",n--); } }second:原创 2016-10-28 12:36:44 · 8519 阅读 · 0 评论 -
switch...case...的用法
仍旧先看两端代码:if...else...//统计输入字符数,换行数以及空格数。void main(){ char ch; uint count1=0; uint count2=0; uint count=0; while((ch=getchar())!='#') { if(ch==' ') count1++; else if原创 2016-10-30 18:47:29 · 3739 阅读 · 0 评论 -
指针漫谈(二):指针的美
突然在看到strlen()函数的原型的时候才意识到指针是如此之美。正是因为有了指针这个工具,才成就了C语言,举例来说: strlen()函数在标准库中定义的时候就是在调用函数的参数中定义了指针变量作为形参,所以在使用strlen函数的时候才会显得非常便利。简单来说,数组,字符串在传递给函数的时候不是直接将整个字符串的值复制或者是将数组的值一个个copy给函数的形参,如果反过来的话,原创 2016-11-10 21:06:10 · 413 阅读 · 0 评论 -
指针漫谈(三):有关指针初始化的问题
最近才厘清指针初始化的问题,不知道大家有没有同样的困惑,就是指针的初始化到低干了些什么工作?到底是因为地址访问操作符给了指针变量的地址还是编译器分配的?为了探讨清楚这个问题,我们先从普通变量看起,例如:int a;printf("%p",a);a=10;printf("%d\n%p\n",a,a) 在上面这段代码中我们想展示的是a这个整形变量初始化之前和初始化之后的地址和值,原创 2016-11-12 11:58:25 · 756 阅读 · 0 评论 -
带返回值的函数调用
先上代码,然后再来分析://比较两个数的大小,然后返回最小值void main(){ int a,b; printf("请输入两个整数:\n"); scanf("%d %d",&a,&b); printf("%d\n",Test(a,b));}int Test(int x,int y){ int min; if(x>y) min=y;原创 2016-10-31 23:34:15 · 13719 阅读 · 1 评论