C语言-1、基本数据类型、指针、函数

2022-06-23  本文已影响0人  喂_balabala
头文件
<stdio.h> // C99 标准库
// <> 寻找系统的资源
// “” 寻找我们自己写的资源
// .h .hpp(声明文件 头文件)
// .c  .cpp (实现文件)
基本数据类型
boolean 非0即true, 0就是false

int i = 100;
double d = 200;
float f = 200;
long l = 100;
short s = 100;
char c = 'd';
// 字符串
char * str = "aaa";

// 不是随便打印的,需要占位
printf("i的值是:%d\n", i); // d == 整形
printf("d的值是:%lf\n", d); // lf == long float
printf("f的值是:%f\n", f); // f == float
printf("l的值是:%d\n", l); // d == 整形
printf("s的值是:%d\n", s); 
printf("c的值是:%c\n", c); // c == char
printf("字符串:%s\n", str); // s == String

printf("char 数据类型所占的字节数:%d\n", sizeof(char));// 1
printf("short 数据类型所占的字节数:%d\n", sizeof(short));// 2
printf("float 数据类型所占的字节数:%d\n", sizeof(float));// 4
printf("int 数据类型所占的字节数:%d\n", sizeof(int));// 4
printf("long 数据类型所占的字节数:%d\n", sizeof(long));// 4
printf("double 数据类型所占的字节数:%d\n", sizeof(double));// 8

//1字节(Byte)=8字位=8个二进制数
//1字位(bit)=1个二进制数
//1B=8b
//1KB=1024B
//1MB=1024KB
//1GB=1024MB

if (0) {
    printf("真\n");
} else {
    printf("假\n");
}

if (43665) {
    printf("真\n");    
} else {
    printf("假\n");   
}

if (-545) {
    printf("真\n");   
} else {
    printf("假\n");  
}
NULL
return NULL; // NULL == 0

指针(%p、&、*)

// Java 万物皆对象
// C C++(对象) 万物皆指针
// Linux 万物皆文件

// %p == 地址输出的占位
// & == 取出地址
// * == 取出指针对应的值
int number1 = 100000;
printf("此number1变量的地址是:%p\n", &number1);

int number_int = 100;
double number_double = 200;
printf("number_int的值是:%d\n", number_int);
printf("number_double的值是:%lf\n", number_double);

// * == 取出number_int地址所对应的值 == 100
// 指针取出值
printf("number_int的值是:%d\n", *(&number_int));
printf("number_double的值是:%lf\n", *(&number_double));


//   ================   难度

int * intP = &number_int;
double * doubleP = &number_double;

// 输出 100  和 200
printf("number_int的值是:%d\n", *intP);
printf("number_double的值是:%lf\n", *doubleP);
指针大小

多级指针的核心是:指针存放的是地址,但是指针本身也有地址

函数
Main函数要不要返回,跟工具有关系

C代码是从上往下查找的,如果函数写在main函数下方,要先声明

// C语言不允许函数重载
// 由于C语言不支持函数重载,所以声明的函数,不需要写参数
void changeAction();


Question

void update(int * i) {
    // 形参i是一个新的变量,然后对这个新的变量赋值,所以和mian函数中传过来的i的内存地址是不一样的
    // printf("update函数,i的内存地址是:%p\n", &i); // 2000H
    printf("update函数,指针i的指向的值是:%p\n", i); // 1000H
    * i = 999;//这句含义是取出内存地址1000H对应的值 并把这个值赋值为999
}

int main1() {
    int i = 100; // 1000H的内存地址
    update(&i);
    printf("main函数,i的内存地址是:%p\n", &i);
    printf("main函数,i的值是:%d\n", i);
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读