0
点赞
收藏
分享

微信扫一扫

C语言学习DAY2

脱下愤怒的小裤衩 2022-01-14 阅读 51
c语言

接上篇

1.常量:

1.字面常量

2.const修饰的常变量

3.#define定义的标识符常量

#include <stdio.h>

#define  MAX 10
int main(){
    int arr[MAX] = 0;
    print("%d\n", MAX);
    return 0;
}

4.枚举常量

#include<stdio.h>

enum Color     //枚举关键--enum
{
    RED,
    YELLOW,
    BLUE
};

 int main(void)
{
    enum Color color = BLUE;
     return 0 ;

}

2.字符串

int main(void)
{ 
     char arr1[] = "abc";//数组
    //"abc"--'a' 'b' 'c' '\0' \\字符串结束的标志
     char arr2[] = {'a','b','c', '\0'}
     printf("%s\n",arr1)
     printf("%s\n",arr2)

 return 0 ;
}

注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算做字符串的内容。

int main(void)
 {
     char arr1[] = "abc";
    char arr2[] = { 'a','b','c','\0'};\\表示结束
    printf("%d\n", strlen(arr1));
    printf("%d\n", strlen(arr2));
	return 0;
}

注:

转义字符:

\\        反斜杠字符        让斜杠就是斜杠

\'        单引号               让单引号就是单引号

\“        双引号               让双引号就是双引号

int main(void)
{
    printf("%d",strlen("c:\test\32\test.c"));    //\t算一个字符,\32也算一个字符
    return 0;                                                 

}

\ddd        ddd表示1~3位八进制数代表的字符(0-7)

//\32--32是2个八进制数字
//32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
//32--> 10进制 26->作为ASCII码值代表的 字符
//32代表一个字符
/*八进制转化为十进制
156.48 = 1×8^2 + 5×8^1 + 6×8^0 + 4×8^-1 = 110.5
整数:156 = 1×8^2 + 5×8^1 + 6×8^0
小数:0.4 = 4×8^-1*/

\xhh        dd表示2个十六进制数字

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制?
用竖式计算:
2AF5换算成10进制:
第0位:5 * 16^0 = 5
第1位:F * 16^1 = 15 * 16 = 240
第2位:A * 16^2 = 10 * 16 = 2560
第3位:2 * 16^3 = 8192
直接计算就是:5 * 16^0 + F * 16^1 + A * 16^2 +2 * 16^3

注:键盘上能敲出的所有的东西都是字符

3.注释

1.有些代码比较难懂,可以加一下注释文字

C++注释风格 // xxxxxxx

C语言注释风格 /*xxxxxx*/        (缺陷:不能嵌套注释,只要捕获到*/就结束 )

4.语句

1.选择语句

2.循环语句

int main(void)
{
    int line = 0;
    printf("学习计算机\n");

    while (line < 20000) {
        printf("敲一行好代码:%d\n", line);
        line++;
    }
    if (line >= 20000) {
        printf("好offer\n");
    }
        return 0;
}

5.函数

求和:

Add(int x, int y)
{
    int z =x+y
    return z;
}                    //自定义函数
int main(void)
{
    int num1 = 100;
    int num2 = 200;
    sum = Add(num1,num2);
    reurn 0 ;

}

6.数组

一组相同类型元素的集合

int arr[10]:
char ch[20];
float arr[5];
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个存放10个整数数字的数组
printf("%d\n",arr[4]);//下标的方式访问元素// arr[下标]

7.操作符

7.1 优先级一级

结合方向 左结合(自左至右)

( ) 圆括号

[ ] [1]  下标运算符

-> 指向结构体成员运算符

. 结构体成员运算符 [1]  (请注意它是一个实心圆点)

7.2优先级2级

结合方向 右结合(自右至左)单目运算符

! 逻辑非运算符

~ 按位取反运算符

++ 自增运算符

-- 自减运算符

- 负号运算符

(类型) 类型转换运算符

* 指针运算符

& 地址与运算符

sizeof 长度运算符

7.3 优先级3级

结合方向 左结合 双目运算符

* 乘法运算符

/ 除法运算符

% 取余运算符(取模) 

7.4 优先级4级

结合方向 左结合 双目运算符

+ 加法运算符

- 减法运算符

7.5 优先级5级

结合方向 左结合 双目运算符

<< 左移运算符

>> 右移运算符

//移2进制位操作符
int main(void)
{    int a = 1;//整型1占4个字节--32bit--00000000000000000000000000000001
     a<<2                            //00000000000000000000000000000100
    printf("%d\n",b)
    return 0;
}

7.6 优先级6级

结合方向 左结合 双目运算符

<、<=、>、>= 关系运算符

7.7优先级7级

结合方向 左结合 双目运算符

== 等于运算符 (判断)

!= 不等于运算符(判断)

7.8 优先级8级

结合方向 左结合 双目运算符

& 按位与运算符

7.9 优先级9级

结合方向 左结合 双目运算符

^ 按位异或运算符

7.10 优先级10级

结合方向 左结合 双目运算符

| 按位或运算符 举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。

7.11 优先级11级

结合方向 左结合 双目运算符

&& 逻辑与运算符

7.12 优先级12级

结合方向 左结合 双目运算符

|| 逻辑或运算符

7.13 优先级13级

结合方向 右结合 三目运算符

? : 条件运算符

7.14 优先级14级

结合方向 右结合 双目运算符

= 赋值运算符

+ = 加后赋值运算符 如s+=1表示s=s+1

- = 减后赋值运算符 如s-=1表示s=s-1

* = 乘后赋值运算符

/ = 除后赋值运算符

% = 取模后赋值运算符

< <= 左移后赋值运算符

>>=右移后赋值运算符

&= 按位与后赋值运算符

^=按位异或后赋值运算符(对应的二进制位相同则为0 ,对应的二进制位相异则为1)

7.15 优先级15级

结合方向 左结合

,逗号运算符

举报

相关推荐

C语言学习-Day2

C语言 Day2

(学习c)day2

C#学习-Day2

day2 驱动开发 c语言

c语言学习-2

C语言学习2

0 条评论