即使是计算机专业,在所谓的大学里面,也学不到你所认为的,关于计算机软硬件真正的知识,起码我的大学是这个样子。自认不是一个懒散的人,跨得过高考的独木桥,又何来懒散可言??
说C,C语言,一门基础的计算机语言,但是,确实基础的东西越难领会其精髓,因为所谓的基础几乎都是万能的,万能到几乎可以实现全部的运行、控制计算机所有语言指令。我学的是ios开发,这个领域要用到O-C,UI,前者就包含一定的C语言内容,以下是入门要点:
一,进制转换
所谓的进制转换,一般是,二进制,八进制,十进制,十六进制彼此之间的任意转换,我们经常用到的就是十进制与其他进制之间的转化,
十进制转化为其他进制用方法:连除倒取余,反之,按权求和。
二、常量与变量
常量:不能被改变的量;变量:可以被改变
定义变量通常是; 类型修饰符 变量的名字 = 初始值;
变量的命名规则:只能由数字,字母下划线组成;数字不能开头
不可以与系统保留字同名;不
能重复使用;
见名知意;
驼峰式命名
三、字符类型
int 整型 4 %d
short 短整型 2 %hd
long 长整型 4/8 %ld
char 字符型 1 %c
float 单精度浮点型 4 %f
double 双精度浮点型 8 %f
例:
int m = 3,n=5;
int temp;
temp = m;
m = n;
n = temp;
printf (“%d %d”,m n);
四、运算字符
++,--在前面的话先进行自加自减运算,然后配合表达式进行计算。++ --在后面,先配合运算式进行计算,再进行自加自减;
运算符号:+ — * / % ++ — += -= *= /=
转换个格式控制:
printf (“%.2dd”,0.1); 输出结果为 0.10,需要在位尾补足位数。
五、 scanf
scanf(格式串,表达式1,表达式2.....);
scanf(‘%d %d”,&num1,&num2);
不要再字符串后面加入\n字符,否则会抵消掉人工输入的回车键。
scanf以 回车 确定输入结束,切记,只有大回车才会结束输入
注意:读入的数据类型要跟格式符相匹配,否则不再查看剩余部分,立刻跳出*/
六、循环功能的实现
所谓的循环就是周而复始的运动,通过执行判断条件,当不满足判断条件时,跳出循环;
我们一般用到的循环语句最常见的是,for循环,执行语句如下:
一、 for(循环变量初始化;循环条件,循环增量)
{
语句;
}
另外还有:
二、
while(条件表达式){
语句;
}
先进性判断,后执行循环预算
三、 do{
语句;
}while(条件表达式);
先执行一次循环,在判断,根据判断结果执行下一次循环;
三种循环结构,相比之下,for语句最简单,而且有很强的逻辑性,使人一目了然;第一个和第三个确定执行一次以上循环,第二个或许一次都不执行;二、三趋势于用于很快就结束的循环运算,for语言运算功能较强;而且后两者的变量必须提前定义并初始化,for循环中可以直接定义初始化变量;
七、数组
数组就是具有相同数据类型组成的一组数据,这些数据即为数组元素;数组有下标,从零开始,即第一个数据的下标是0,以后的数据一次累加。根据下标变量可以提取数
组中每一个元素;
数组的定义语句:
基本数据类型 数组名【数组元素个数】={值1,值2,值3,值4.。。。。}
数组元素个数的求法 元素个数 = sizeof(数组名)/sizeof(int);
【a,b】之间的随机数c的求法:c = arc4random%(b-a+1)+a;
八、冒泡排序法。
-
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
-
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
-
3、针对所有的元素重复以上的步骤,除了最后一个。
-
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
接着看下面的例子:
二维字符数组,按照英文字母的排列顺序,从前往后排列:
注:strcmp 字符串比较函数,比较的结果以数字方式输出,若结果为0,则字符串一模一样,若不为零,则代表他们有区别。从第一个字符开始比较,一直比到最后一位;
strcpy 字符串复制函数,
另外,常用到的字符数组函数还有:
strcat 字符串拼接;
strlen 计算字符串实际长度,即字符串中实际存在几个元素;
char a[5][10]
= {"fangfang","yiral","zhangheng","mirzhang","mirszhang"};
for (int i =
0; i < 4; i++) {
for (int j; j <
4-i; j++) {
int b =
strcmp(a[i],a[i+1] );
if (b >
0) {
char t[10] = {};
strcpy(t, a[i]);
strcpy(a[i], a[i+1]);
strcpy(a[i+1], t);
}
}
}
for (int i =
0; i < 5; i++) {
printf("%s ",a[i]);
}