概述
C语言基础学习记录
学习视频如下
https://www.bilibili.com/video/BV1q54y1q79w/?spm_id_from=333.999.0.0&vd_source=7442270a1c7e13b4dcbd82e1f0420f8b
P1-P5:初识C语言
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
return 0;
}
结构体
char int double ..
人、书... -- 复杂对象
人:名字+身高+年龄+身份证号+...
//
//struct Book
//{
// char name[20];//C语言程序设计
// short price; //55
//}; // ; 用于结束类型定义
//
//int main()
//{
// //利用结构体类型创建一个结构体变量
// struct Book b1 = {"C语言程序设计", 55};
// struct Book* pb = &b1;
//
// printf("书名:%sn", b1.name);
// printf("价格:%d元n", b1.price);
// b1.price = 15;
// printf("甩卖价格:%d元n", b1.price);
//
// strcpy(b1.name, "C++"); //strcpy-string copy -字符串拷贝-库函数-string.h
// printf("新书名:%sn", b1.name);
//
// //利用pb打印书名和价格
// // . 结构体变量.成员
// //-> 结构体指针->成员
// //printf("书名:%sn", (*pb).name);
// //printf("价格:%d元n", (*pb).price);
// printf("书名:%sn", pb->name);
// printf("价格:%d元n", pb->price);
//
// return 0;
//}
//int main()
//{
// char ch = 'w';
// char* pc = &ch;
// *pc = 'a';
// printf("%cn",ch);
// printf("%dn",sizeof(pc)); // 4 -- 当前平台为32位;
// return 0;
//}
// 指正变量的大小
// 32位平台,指针的大小为4 byte;
// 64位平台,指正的大小为8 byte。
指针
//int main()
//{
// int a = 10; // 4个字节
// int* p = &a; //int* 为指针变量类型,取出a的地址存到p
// // 有一种变量是用来存放地址的--指正变量
// printf("%pn",&a);
// printf("%pn",p);
//
// // *p; //
* -- 解引用操作符,间接访问操作符,对p进行解引用操作,找到它所指向的对象a
// *p = 20; //通过*p找到的a值改为20;
// printf("%dn",a);
//
// return 0;
//}
#define 定义常量和宏
//
#define MAX 100 //#define 定义标识符常量
#define 定义宏(带参数的)
//
// 函数的实现
int Max(int x, int y)
{
int z = (x>y ? x:y);
return z;
}
宏的定义方式
//#define MAX(X, Y) (X>Y?X:Y)
//
//int main()
//{
// // int a = MAX;
// int a = 10;
// int b = 20;
// // 函数方式
// //int max = Max(a, b);
// //printf("max = %dn", max);
// // 宏的方式
// int max = MAX(a, b);
// printf("max = %dn", max);
//
// return 0;
//}
static 修饰局部变量,局部变量的生命周期边长
static 修饰全局变量,改变了变量的作用域,静态的全局变量只能在所在的原文件内部使用,出了原文件就无法使用
static 修饰函数, 也是改变了函数的作用域(不准确的说法),即改变了函数的链接属性,外部链接属性变成了内部链接属性
//
声明外部函数
//extern int Add(int, int);
//int main()
//{
// int a = 10;
// int b = 20;
// int sum = Add(a, b);
//
// printf("sum = %dn", sum);
//
//
return 0;
//}
//int main()
//{
// extern int g_val; // 声明外部符号
// printf("g_val = %dn", g_val);
//
//
return 0;
//}
//void test()
//{
// static int a = 1; // 是一个静态的局部变量
// a++;
// printf("a = %dn", a); // 2 3 4 5 6
//}
//
//int main()
//{
// int i = 0;
// while(i < 5)
// {
//
test();
//
i++;
// }
// return 0;
//}
//int main()
//{
// // typedef -类型定义 - 类型重定义
// typedef unsigned int u_int;
// unsigned int num = 20;
// u_int num2 = 20;
//
// return 0;
//}
// 常见关键字
// auto break case char const continue default do double else enum(枚举)
// extern(外部变量) float for goto if int long register(寄存器) return short signed(有符号的)
// sizeof static struct switch typedef(类型定义) union(联合体or共用体) unsigned(无符号的) void volatiele while
// & * . ->
//int main()
//{
// int arr[10] = {0};
// arr[4]; //[] - 下标引用操作符
//
// int a = 10;
// int b = 20;
// int sum = Add(a, b); //() - 函数调用操作符
//
// return 0;
//}
// 逗号表达式
// exp1, exp2, exp3, ..., expN
条件操作符
//int mian()
//{
// int a = 10;
// int b = 20;
// int max = 0;
//
// // exp1 ? exp2 : exp3
// // exp1 为真,执行exp2;
// // exp1 为假,执行exp3;
// max = (a>b ? a : b);
//
// //if(a > b)
// // max = a;
// //else
// // max = b;
//
// return 0;
//}
逻辑操作符
//int main()
//{
// // 真 -- 非0
// // 假 -- 0
//
// // && -- 逻辑与
// // || -- 逻辑或
//
// int a = 3;
// int b = 5;
// int c = a && b;
// int d = a || b;
//
// printf("c = %dn", c);
// return 0;
//}
// 关系操作符
// > >= 大于等于
// < <=
// !=
(类型)--强制类型转换
//int main()
//{
// int a = (int)3.14; //将double强制装换为init
// return 0;
//}
//int main()
//{
// int a = 10;
// int b = a++; //后置++,先使用a赋给b,a再自增
// int c = 10;
// int d = ++c; //前置++,c先自增,再使用c赋给d
// int e = 10;
// int f = e--; //后置--,先使用a赋给b,a再自减
// int g = 10;
// int h = g--; //前置--,g先自减,再使用g赋给h
// printf("a = %d b = %d c = %d d = %dn", a, b, c, d); // 11 10 11 11
// printf("e = %d f = %d g = %d h = %dn", e, f, g, h); // 9 10 9 9
// return 0;
//}
// 只要是整数,内存中存储的都是二进制的补码
// 正数--原码、反码、补码是相同的
// 负数
//
原码 ------------------------> 反码
------------------>
补码
// 直接按照正负写出的二进制序列
原码的符号位不变,其他位按位取反
反码加1
// -2
10000000000000000000000000000010 - 原码
// -2
11111111111111111111111111111101 - 反码
// -2
11111111111111111111111111111110 - 补码
// -1
// 1
//有符号数在内存中二进制的最高位表示符号
//[1][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] 负数
//[0][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] 正数
//int main()
//{
// // ~ 按二进制位取反
// int a = 0;
// int b = ~a;
// //00000000000000000000000000000000
32个0
// //11111111111111111111111111111111
//
//+1
//
//100000000000000000000000000000000
//
//-1
//
//1*2^32-1
// //源码、反码、补码
// //复数在内存中存储的时候,存储的是二进制的补码
// //11111111111111111111111
// //11111111111111111111110
// //10000000000000000000001
// printf("%dn", b ); //-1
//
// return 0;
//}
//int main()
//{
// int a = 10;
// int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//int是元素的类型,数组的类型是int[10]
// int num = 0;
// //sizeof 计算变量或类型所占空间的大小,单位是字节
// printf("%dn",sizeof(a));
// printf("%dn",sizeof(int));
// printf("%dn",sizeof(arr)); //计算数组大小,单位是字节
//
// //计算数组元素的个数
// //个数=数组总大小/每个元素的大小
// num = sizeof(arr)/sizeof(int);
// printf("%dn",num);
//
// return 0;
//}
单目操作符
双目操作符
三目操作符
//
//int main()
//{
// //c语言中表示真假 0-假;非0-真
// int a = 10;
// int b = -a;
//
// printf("%dn",a);
// printf("%dn",!a);
// return 0;
//}
//int main()
//{
// int a = 10;
// a = 20;
// //复合赋值符
// a = a+10;
// a += 10;
//
// a = a-20;
// a -=2 0;
//
// return 0;
//}
//int main()
//{
// //位操作符
// //& 按位与
// //| 按位或
// //^ 按位异或:对应的二进制位相同为0,相异则为1
//
// int a = 3; // 0 0 1 1
// int b = 5; // 0 1 0 1
// int c = a&b;
// int d = a|b;
// int e = a^b;
//
// printf("%dn" ,c); // 1
//
printf("%dn" ,d); // 7
// printf("%dn" ,e); // 6
//
// return 0;
//}
//int main()
//{
// //int a = 5/2;
// int a = 5%2;
//取模
// printf("%dn",a);
// return 0;
//}
//int main()
//{
// int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //定义一个存放10个整型数字的数组
//
//数组下标从0开始
// //char ch[20];
// //float arr2[5];
// int i = 0;
//
// printf("%dn",arr[4]);
//
// while(i<10)
// {
//
printf("%dn",arr[i]);
//
i++;
// }
//
// return 0;
//}
//int add(int x, int y)
//{
// int z = x + y;
// return z;
//}
//int main()
//{
// int num1 = 10;
// int num2 = 20;
// int sum = 0;
//
// int a = 100;
// int b = 200;
//
// sum = add(a, b);
//
// //scanf("%d%d",&num1,&num2);
// sum = num1 + num2;
// printf("sum = %dn",sum);
//
// return 0;
//}
//int main()
//{
// int line = 0;
// printf("加入比特n");
//
// while(line<=200)
// {
//
printf("敲一行代码:%dn",line);
//
line++;
//
// }
//
// if(line>180)
//
printf("好offer");
//
// return 0;
//}
//int main()
//{
// //int input = 0;
//
// //printf("加入比特n");
// //printf("你要好好学习吗?(1/0)>:");
//
// //scanf("%d",&input);
//
// //if(input==1)
// // printf("好offern");
// //else
// // printf("卖红薯n");
//
// return 0;
//}
最后
以上就是端庄小蚂蚁为你收集整理的C语言初学1--基础的全部内容,希望文章能够帮你解决C语言初学1--基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复