栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

头文件
 // 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的值是:%dn", i); // d == 整形
printf("d的值是:%lfn", d); // lf == long float
printf("f的值是:%fn", f); // f == float
printf("l的值是:%dn", l); // d == 整形
printf("s的值是:%dn", s); 
printf("c的值是:%cn", c); // c == char
printf("字符串:%sn", str); // s == String

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

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变量的地址是:%pn", &number1);

int number_int = 100;
double number_double = 200;
printf("number_int的值是:%dn", number_int);
printf("number_double的值是:%lfn", number_double);

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


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

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

// 输出 100  和 200
printf("number_int的值是:%dn", *intP);
printf("number_double的值是:%lfn", *doubleP);
指针大小
  • 指针占用的内存大小是? int double xxx 的指针 永远都是 4个字节(32) 4*2(64)

  • 指针类型有何用?。 既然都是 4个字节,为什么还要分 指针类型

  • 答:取值的时候才知道怎么取(比如数组取值的时候知道类型才知道下一个元素要取多少个字节),这就是类型规定的好处

多级指针的核心是:指针存放的是地址,但是指针本身也有地址 函数
Main函数要不要返回,跟工具有关系

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

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


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

int main1() {
    int i = 100; // 1000H的内存地址
    update(&i);
    printf("main函数,i的内存地址是:%pn", &i);
    printf("main函数,i的值是:%dn", i);
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号