c语言,字符串,结构体,预编译,枚举

字符串是一个字符数组,但是以“\0”结尾,"\0"就是表示0,所以字符串就是以0结尾的字符数组。输出是使用“%s”。

字符串的定义如下:

#include<stdio.h>
int main(){
        //字符串的定义方式,可以用数组,也可以用指针。
        //这里后面的e会被忽略,因为“\0”就已经结尾了。
        char str[11] = {'g','o','o','d','D','a','y','!','\0','e'};
        printf("%s\n",str);
        char str1[] = "good Day!";
        printf("%s\n",str1);
        char* pStr = "good Day!";
        printf("%s\n",pStr);
        return 0;
}

char *strcpy(char* str, const char *from);

拷贝函数,strcpy函数第一个参数str必须是指向一片有效内存,如下:

#include<stdio.h>
#include<string.h>
int main(){
        char str[11] = {'g','o','o','d','D','a','y','!','\0','e'};
        printf("%s\n",str);
        char str1[] = "good Day!";
        printf("%s\n",str1);
        char* pStr = "good Day!";
        printf("%s\n",pStr);
        //pStr[0]='f';//字符串指针是常量,不能改变其值,上面用数组定义的字符串则
可以
        char string[80];//分配在栈上的长度80的有效内存(不是用malloc分配,所以是在栈上)
        //char* string 则可能会出错,因为string没有指向有效的内存。
        strcpy(string,"hello world from ");
        printf("%s\n",string);
        return 0;
}


#include<stdio.h>
int main(){
        char* pDays[3];//存放指针的数组。数组名就是数组首地址,也就是指向数组第一个成员的指针。所以pDays就是指向pDays[0]的指针,而pDays[0]也是一个指针,是指向“sunday”字符串数组的首地址的指针,内容就是“s”,所以pDays就是指向指针的指针。
        pDays[0] = "sunday";//每个数组成员是一个指针,并且这个指针指向了一个字符串数组首地址。
        pDays[1] = "monday";
        pDays[2] = "tuesday";
        char** pWalker,**pLast;//指向指针的指针。
        pLast = &pDays[2];
        for(pWalker = pDays;pWalker<=pLast;pWalker++){
                printf("%s\n",*pWalker);//这里输出用的是*pWalker如果用**pWalker,那么,输出要用%c,并且输出“s”“m”“t”,就是首字母,*pWalert是一个指针,所以用“%s”输出则是直接打印出该指针指向的内容,但是如果是**pWalker,那么,就是指向指针的指针,比如是pDays[0]指向的字符串的首地址,其内容是“s”,所以输出s。
 }

        return 0;
}



预处理就是编译前会将对应内容替换成预先指定的内容,如#include<stdio.h>就是一个预处理指令,编译前将这个地方用stdio.h的内容替换掉了。


#include<stdio.h>
int main(){
        printf("asdfasdfsadf\n");
        int i;
        for(i=0;i<10;i++){
                printf("%d \n",i);

}
        //枚举类型!用字符代表数字,默认是从0开始,也可以自己赋值。
        enum xz{fangkuai,yuanxin};
        enum xz f=fangkuai;
        if(f==fangkuai){

                printf("f is %d\n",f);
}
        enum weekday{sunday,monday,tuesday};
        enum weekday today;
        int val=0;
        scanf("%d",&val);
        today = val;
        if(today==sunday)
        {
                printf("today is sunday\n");
  }
        return 0;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值