写在前面
昨天跟妈妈谈起,以后想去深圳发展,进入腾讯工作,先做个机器学习工程师,挣够了钱,就调去娱乐部或者动漫部做动漫,拍电影(想得美美的)。我妈表示很高兴,很支持,忽然发现,天底下父母都是希望孩子开心,能实现自己的梦想,只是更担心孩子生活上遇到困难,吃太多苦,所以中产阶级的父母大多有这点担心,不能放手让小孩追梦。只要小孩自己能解决最基本的问题,他们肯定支持。所以,一直以来,别人所阻拦,所嘲笑的,都不过是自己的实力,而不是你的梦想有多么遥不可及。进击吧,黄小旋!
C语言学了前面的,以前没更新,是看知乎上别人建议的,每天更博客,有写得不好的地方请大家批评指正,虽然已经有过python的编程经验,但我本身学的土木工程,非科班出身,敲代码纯粹是兴趣,基本功不扎实,c和数据结构刚开始,希望与大家多多交流!
学会基本的条件判断还是很简单的,毕竟学过python,但是字符数组与字符串遇到困难了,今天把这里搞懂。
①字符数组初始化
把逐个字符赋值给数组的各个元素:(每个字符用单引号连接,各个字符用逗号隔开)
char str[6]={'I',‘a’,'m','H','Y','X'};如果赋值的字符小于字符长度,则用空字符表示'\0'
第一个问题
#include<stdio.h>
int main()
{
int i,j,sum=0,v=0;
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
for(i=0;i<3;i++)
{
for (j=0;j<4;j++)
{
sum=sum+a[i][j];
}
}
v=sum/12;
printf("%d\n",v);
return 0;
}
如愿计算出平均数为6
但如果:
#include<stdio.h>
int main()
{
int i,j,sum=0,v=0;
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
for(i=0;i<3;i++)
{
for (j=0;j<4;j++)
{
sum=sum+a[i][j];
}
v=sum/12;
printf("%d\n",v);
}
return 0;
}
最后输出为0,3,6瓜娃子,为啥呢?哦,原来是因为v和print 都包含在了第一个for 循环里,循环了三次,第一次:(1+3+4+5)/12=0,第二次(1+2+3+4+5+6+7+8)/12=3,
第三次(加和)/12=6
指针:据说是C语言的中心。。。
p代表地址
*p代表这个地址中存放的内容
printf("%p",p) //结果是一个地址(p指向的变量a的地址)。 printf("%d",*p) //结果是10,变量a的值。 printf("%d",&p) //结果是一个地址(指针p的地址,因为指针也是一个变量自己也有地址的)
int 与数a之间一定要隔开,不然就会出bug
#include<stdio.h>
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int main()
{
int m;
m=max(4,5);
printf("%d",m);
return 0;
}
#include <stdio.h>
#include<stdlib.h>
int testr()
{
printf("我们在测试return语句\n");
return 0;
}
int teste()
{
printf("我们在测试exit语句\n");
exit(0);
}
int main()
{
testr();
printf("return语句之后,程序还能执行到这里\n");
teste();
printf("exit语句之后,程序还能执行到这里\n");
return 0;
}
显示结果:
我们在测试return语句
return语句之后,程序还能执行到这里
我们在测试exit语句
return 调用第一个函数,exi也调用第一个函数,但是后来就终止这个函数了。