【达内训练营第三天】07_28_复杂数据类型与文件系统

圆周率怎么算?精度?while i > 0.000001
写函数

读入一个大于1的整数
判断一个整数是否素数(质数),不用输出
main
12输出结果
-----------------------------------------------
复杂数据类型与文件系统


数组

输出地址用格式字符p
局部变量是在栈里开辟的空间,所以先定义的变量地址大些,两个变量之间不一定是挨着放的。

字符数组可以用字符串初始化,其他数组不可以。
字符串函数<string.h>
字符串复制:strcpy(to,from)要求to是一个足够大的字符数组

字符串追加:strcat(to,str)要求to是一个足够大的字符数组
字符串比较:strcmp(str1,str2)比较两个字符串的大小,执行的是逐个比较对应字符的ASCII码,结果是一个整数,分别用正、零、负来表示大于、等于、小于关系。
求字符串长度:strlen(str)计算字符串长度,不包括'/0'
换行
printf("/n");
putchar('/n');
puts(" ");

用数组作为函数的参数
函数的形参和实参可以是数组;
形参数组跟实参数组会是同一个数组,数据会相互影响,也因此函数的return语句不需要返回数组。
数组名只是个开始地址,所以数组作参数时,往往把元素个数作为另一个参数。


指针

c
程序设计中使用指针的作用:
使程序简洁紧凑高效
有效的表示复杂的数据结构
动态分配内存
得到多于一个的函数返回值

指针是C语言的精华
指针也是C语言的难点

指针变量的定义:
数据类型*指针变量=地址
初始化不是必须的,但是个好习惯。
指针中保存的地址要么在类型上是跟指针的数据类型一致,要么是NULL。(NULL本质上是整数0,当成真假时是假)

运算符:
&
对变量取地址
*
对地址取变量(小心无效的地址)


指针即地址,可以对指针加减,但只能加减整数。


指针应用:
通过指针间接访问变量
通过指针访问数组
指针作函数形参->实现假双向传递
字符指针管理字符串(指针不能保存字符串,只是保存地址,它占4Byte)
段错误—>非法内存操作

/*
    char* str="hello";
    puts(str);
    str[0]='H';
    puts(str);
*/
const char* str="hello";
字符指针与字符数组的区别
字符数组是一组字符变量,占一段内存空间。
字符指针只有4个字节。需要保存一个字符串时用字符数组,操纵字符串用字符指针。

用指针处理字符串数组


命令行参数
which vi
可查看路径
int main(int argc, char* argv[])
{
    ......

}
argc
命令行上字符串的个数,至少是1
argv[]
依次指向每个字符串。
argc
argv可以改成其他的。

结构
结构体是程序员可以自行定义的数据类型。
一般用结构体来保存一组相关数据,各个数据的类型可以不同。
struct
结构体类型名{
数据类型1 成员变量名1
数据类型2 成员变量名2
......

;
怎样使类型名变短?

typedef struct Student Stu;
typedef struct{
......
......
......
}stu;
(*p).name
p->name一样


文件操作
说不完了,不说了?





目录操作

创建目录:
int mkdir("
目录名",权限);
删除目录或文件:

int remove("
目录名或文件名");只能删除空目录
目录或文件改名:
int rename("
目录名或文件名","新名");
取得当前工作目录:

char* getcwd(
字符数组名,字符数组长度);
    cwd:current working directory
设置当前目录:

int chdir("
目录名");
目录名可以用相对路径,也可以用绝对路径。


#include <stdio.h>
#include <sys/stat.h>
#include <stdlib.h>

int main()
{
    char name[256];
    mkdir("abc",0700);//0
开头表示8进制数
    mkdir("defg",0700);
    getcwd(name,256);
    printf("current in %s/n",name);
    rename("abc","xyz");
    chdir("defg");
    getcwd(name,256);
    printf("current in %s/n",name);
    chdir("..");
    remove("defg");
    return 0;
}



从键盘输入10个整数,从小到大排序,输出。写成独立的3个函数。

 

 

 

---------------------------------------------------------------

 

训练营只有3天,相当于熟悉一下基础吧。陈老师讲课挺好的,很有收获啊。O(∩_∩)O哈哈~

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值