1、课程主要内容及收获:
(1) . Linux常用命令:
a.rmdir 目录(删除空目录文件)
b.Rm -rf/-r 目录名(删除空或非空目录)
c.rm 目录名(删除文件)
d.mkdir 文件名(创建文件夹)
e.vim/vi test.c(创建名为test.c的文件并进入编辑模式)
f.echo “abcd” > 1.txt(将1.test中的文件清空并写入“abcd”)
g.echo “abcd”>>1.txt(将“abcd”追加到1.txt之后)
(2) . “死循环”的写法
a.while(1){
循环体;
}
b. For( ; ; )
(3) . char (1字节)
Int(32位操作系统下4字节)
(4) . C语言的存储类型:静态存储(static)和外部存储(extern)
(5) . 对于数组,其下标必须是一个定值,因为在数组声明是系统会按照它的大小分配存储空间。在二维数组中,行数可以省略,列数不能省略。
(6) . “hello”共5个字符,即字符长度为5,但是它在内存中占有6个字节。
(7) . 指针变量其实是一个指针,存放的是一个指向变量的地址,这个地址指向变量。
&:取变量的地址 *:取变量
举例:i_pointer = &i = &(*i_pointer);
i = i_pointer = (&i);
其中:i_pointer:指针变量,它的内容是地址量;
*i_pointer :指针的目标变量,它的内容是数据;
&i_pointer :指针变量,表示占用内存的地址。
2、代码
(1) sum.c 计算1+2+3+…+49+50并输出结果
#include<stdio.h>
int main(){
int i = 1;
int sum = 0;
while(i <= 50){
sum = sum + i;
i++;
}
printf("sum = %d\r\n",sum);
}
(2) . pointer.c 输出不同类型的数据,输出的四个字符中,前两个为地址,后两个为内容
#include<stdio.h>
int main()
{
int a = 5;
int *p = NULL;
p = &a;
printf("%p,%p,%d,%d\r\n",&a,p,*p,a);
return 0;
}
(3). swap.c 定义函数将输入的两个字符a,b的值互换
#include<stdio.h>
void func(int a,int b)
{
int temp = a;
a = b;
b = temp;
printf("a = %d,b = %d\n",a,b);
}
int main()
{
int a = 3;
int b = 5;
printf("a=%d,b=%d\r\n",a,b);
func(a,b);
return 0;
}
(4). swap1.c用指针传参实现a,b两个变量的互换
#include<stdio.h>
int swap(int *a,int *b)
{
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
printf("a= %d,b=%d\r\n",*a,*b);
return 0;
}
int main()
{
int a = 5;
int b =10;
printf("666a=%d , b=%d\r\n",a,b);
swap(&a,&b);
printf("2----a=%d,b=%d\r\n",a,b);
return 0;
}
*作业:用C语言实现冒泡排序法。
#include<stdio.h>
void MP(int *a,int len)
{
int i=0;
int j;
int t;
for(i=0;i<len;i++)
{
for(j=0;j<len-i-1;j++)
{
if (a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main(int argc,char *argv[])
{
int a[5]={200,1,50,40,1000};
int i=0;
MP(a,5);
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
return 0;
}