其他文章链接,独家吐血整理
(一)C语言入门,代码编程,基本数据【70行】【原创】
(二)C语言入门,代码编程,打印输出【90行】【原创】
(三)C语言入门,代码编程,初识结构体【60行】【原创】
(四)C语言入门,代码编程,诡异的if-else判断【40行】【原创】
(五)C语言入门,代码编程,奇葩的for循环【10行】【原创】
(六)C语言入门,代码编程,三子棋游戏【300行】【原创】
(七)C语言入门,代码编程,电脑关机程序【40行】【原创】
(八)C语言入门,代码编程,深入结构体【130行】【原创】
(九)C语言入门,代码编程,深入指针【90行】【原创】
(十)C语言入门,代码编程,初识数据类型【90行】【原创】
(十一)C语言入门,代码编程,初识枚举,共用体【70行】【原创】
(十二)C语言入门,代码编程,初识链表【100行】【原创】
编译环境
编译环境:VS2019
运行结果
test3.c
#include <stdio.h>//std standard input output
#include <string.h>
//到底C语言中的汉字占用几个字节,只跟其采用的字符集的编码方案有关
//gb2312中占用2个字节,utf - 8中占用3个字节
int main()
{
int a = 0;//每次申请一个四个字节的空间,这个空间的地址随机
int* p = &a;
printf("%p\n", &a);//0055FE2C,这个地址一直在变
printf("%d\n", *p);//0
printf("%p\n", p);//0055FE2C
*p = 1;//这里面的*不等于int*中的*,前者是解引用操作符,后者是固定==基类型
printf("%d\n", a);//1
printf("%d\n", *p);//1
printf("%d\n", sizeof(p));//4
printf("%d\n", sizeof(int*));//4
struct Book
{
char name[20];
short price;
};
struct Book b1 = { "C语言程序设计", 55 };
struct Book* pb = &b1;//struct Book *pb = &b1;//error
printf("书名:《%s》\n", b1.name);
printf("价格:%d\n", b1.price);
//printf("书名:《%s》\n", *pb->name);//这句话出错了
printf("书名:《%s》\n", pb->name);
printf("价格:%d\n", pb->price);
printf("书名:《%s》\n", (*pb).name);
printf("价格:%d\n", (*pb).price);
b1.price = 66;
printf("价格:%d\n", b1.price);//66
//b1.name = "C语言";//error
//b1.name[] = "C语言";//error
//strcpy(b1.name,"C语言");//error
//strcpy_s(b1.name, "C语言");//这句也出错,理论上是true的,暂时无法解决
printf("书名:《%s》\n", b1.name);
char c = '语';
char d = "C语言";
char e = "cyuyan";
char f[] = "cyuyan";
char g[6] = "cyuyan";
printf("%d\n", sizeof(c));//1
printf("%d\n", sizeof(d));//1
printf("%d\n", sizeof(e));//1
printf("%d\n", sizeof(f));//7
printf("%d\n", sizeof(g));//6
return 0;
}