第二天浅识c语言

1.常量

(1) 字面常量

#include<stdio.h>
int main(){
3;
4;
5;       //字面常量的意思就是能够直接写出的常量的意思,懂得都懂

return 0;
 }

(2) const修饰的常变量

#include<stdio.h>
int main() {
int a =10;
printf("%d",a);
a = 20;
printf("%d",a);//这是属于正常变量的范畴
return 0;
 }
#include<stdio.h>
int main() {
const int a =10;
printf("%d",a);
//a = 20;         //这里会执行报错,原因是因为"const"已经限定了a的值,a 
                      //的值不能再次被改变
//printf("%d",a);
return 0;
  }
#include<stdio.h>
int main() {
const int a = 10;      //经过const修饰后a具有"常属性",不能够对a进行修 
                               //
int arr[10] = {0};
//const arr[a] = {0};//这里会执行报错,原因是数组中的参数不接受变量
                              //说明尽管a已经被修饰成常变量,依然是一个变量
return 0;
  }

(3) define定义的标识符常量

#include<stdio.h>
 #define num = 10;
 int main() {
 int arr[num] = {0};//由于数组的原因,num只能是常量,而这一行代码
                            //能够正常运行,也说明了"#define"定义的是一个常量
return 0;
 }

(4) 枚举常量

enum color {
red,
yellow,
 blue                       //枚举的意思就是意思就是列举
 }
#include<stdio.h>
int main(){
enum color x = red;//x为变量
 x = blue;                //变量可以被改变
//blue = 6;                //枚举常量不可以被改变
  return 0;
}

 

 2.字符串

 (1) 关于字符串的解释

 #include<stdio.h>
int main(){
"10";
 "55516";
 "你好!"              //双引号的内容统称为字符串
 return 0;
 }

(2) 字符串的储存

 #include<stdio.h>
int main() {
 char arr1[] = "abc";
char arr2[] = {'a','b','c','\0'};//字符串的储存需要创建数组,以上两种方式 
                                         //都可以,"\0"要加上是因为,在arr1中默认加 
                                        //上"\0","\0"是储存字符串结束的标志
 printf("%s\n",arr1);
 printf("%s\n",arr2);             //%s是打印字符串的转换说明
 printf("%d\n",strlen(arr1));
 printf("%d\n",strlen(arr2));  //strlen指的是字符串的长度
 return 0;
 }

3.转义字符

 

 #include<stdio.h>
 int main() {
printf("%d\n",32);//"\n"是换行的意思,而不是单纯的输出"\n"
 char arr[] = {'a','b','c','\0'};//"\0"的意思是结束字符串储存的意思,而不 
                                        //是单纯的储存"\0"
                          //转义字符的意思就是转换意思的意思,懂得都懂

return 0;
}
 #include<stdio.h>
 int main(){
 printf("%d",strlen("c:\text\32\text.c"));
 //"\t"代表着一个转义字符,因此长度只能算一个,"\32"也代表着3,2
 //两个八进制数字,通过转换十进制后通过ascll码变成箭头的符号,因此也
 //只能算一个字符
 printf("%c",'\x86');//同理,但是是16进制的两个数字8,6
 return 0;
 }

4.if语句

 #include<stdio.h>
 int main() {
 int input = 0;
 printf("你要好好学习吗?\n  是/否(1/0):");
 scanf("%d",&input);
 if(input==1){
 printf("迎娶白富美!");
 }else{
 printf("烤红薯");
 }
 return 0;
 }

5.while循环语句

 #include<stdio.h>
 int main() {
 int sum = 0;
 while(sum<20000){
 printf("写了一行代码,此代码为第%d行\n",sum);
 sum++;
 }
 printf("迎娶白富美!");
 return 0;
 }

6.函数

 #include<stdio.h>
 int add (int x,int y){//这是自定义函数,"int"是返回值类型,"add"是
                              //自定义函数名,"()"内的内容是函数参数
int z = 0;
 z = x + y;
 return z;
 }
 int main(){
 
 int sum = 0;
 sum = add (4,5);
printf("%d",sum);
 
return 0;
 }

7.数组

 #include<stdio.h>
 int main() {
   int i = 0;
     int a = 1;
     int b = 2;
    int c = 3;
    int d = 5;
     int e = 6;
    //..........
     int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
     printf("%d\n", arr[0]);
     while (i < 10) {
     printf("%d ", arr[i]);
     i++;
     }
 
     return 0;
}
#include<stdio.h>
#include<string.h>
int main() {
    //探究数组
    char arr[20] = { 0 };
    //scanf("%s",arr);//因为arr是一个数组名,通常来说:数组名就是一个指针,所以不需要取地址符“&”
    //arr = 'a';//不能直接对字符串进行赋值
    strcpy(arr, "abc");//如果要对字符串进行赋值需要用到strcpy函数,用此函数,还需要调用string.h头文件
    //因为该头文件包含了strcpy函数,没有调用头文件会报错。
    printf("得到的字符串为:%s",arr);
    return 0;
}

 

8.算数操作符

 #include<stdio.h>
 int main() {
   int a = 1;
   int b = 2;
   int c = 3;
   int d = 4;
   int sum = 0;
   int reduce = 0;
   int multiply = 0;
    int except = 0;
    int remainder = 0;
    sum = a + b;
    reduce = c - b;
    multiply = b * c;
    except = d / b;
    remainder = c % b;
    printf("%d\n", sum);
    printf("%d\n", reduce);
    printf("%d\n", multiply);
    printf("%d\n", except);
    printf("%d\n", remainder);

9.移位操作符

移位(>>,<<)操作符,移的是二进制位

例如:int是4个字节,有32位,举个例子:00000000000000000000000000000001--1

向左移一位:

 #include<stdio.h>
 int main() {
     int a=1;
       int c = a<<1;
 printf("%d",c);
 return 0;
}

结果为2  :   00000000000000000000000000000010--2

10.位操作符

“&”“|”“^”位操作符也指的是二进制

 

#include<stdio.h>
 int main(){
 int a =3;
 int b =4;
int c =0;
 c = a & b;
 printf("%d\n",c);------0
 //a的二进制为:011;
 //b的二进制为:100;
 //a&b为:        000;---有假即为假
 c = a | b;
printf("%d\n",c);------7
//a|b的二进制为:111;---有真即为真
 c = a ^ b;
 printf("%d\n",c);-------7
 //a^b的二进制为:111;---同真同假即为假,异真异假即问真
 
 return 0;
 }

 

11.复合赋值符

 #include<stdio.h>
 int main() {
     //复合赋值符:+=,-=,*=,/=,%=,&=,|=,^=
     int a = 5;
     int b = 6;
      a *= 6;//-- a = a * 6;
      printf("%d", a);
     return 0;
 }

12.单目操作符,双目操作符,三目操作符

 #include<stdio.h>
 int main() {
    //单目操作符,双目操作符,三目操作符
     //a + b;操作符左右有两个数字为双目操作符,只有一个为单目操作符....
     int a = 3;
     int b = 4;
    int c = 0;
    int arr[10] = { 0 };
    printf("%d\n",!a);
    printf("%d\n",sizeof(arr));//求数组大小
    c = sizeof(arr) / sizeof(arr[0]);//求元素个数
     printf("%d\n",c);
    return 0;
}

 

 #include<stdio.h>
int main() {
     int a = 10;
   int b = 0;
   int ch[] = { 1,2,3,4,5,6 };//创建一个数组ch,数组元素的类型为int;
    printf("%d\n", sizeof(a));//输出为4,单位字节
    printf("%d\n", sizeof(int));//输出为4,单位字节
    printf("%d\n", sizeof a);//输出为4,单位字节
                   //可以看出size是一个操作符而不是一个函数
   //printf("%d",sizeof int );//报错,原因输出类型错误
   printf("%d\n", sizeof(ch));//输出为24,单位字节
   b = sizeof(ch) / sizeof(ch[0]);//输出结果为6
   printf("%d\n",b);
   return 0;
 }

 

posted @ 2022-06-05 10:00  浅影阿  阅读(44)  评论(2编辑  收藏  举报