IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 详解变量与数据类型 -> 正文阅读

[C++知识库]详解变量与数据类型

1.变量定义的语法格式:
切记:什么为定义?答:定义就是分配内存
什么为初始化?答:就是给变量对应的内存空间放一个数字
语法: 数据类型 变量名 = 初始值;
注意:目前掌握一个数据类型:int(整型数:0,1,2,3…),表示分配4字节内存空间
此种数据类型的占位符:%d

例如:printf("%d\n", 变量名);

2.定义变量的形式:

形式1:只定义不初始化
int var; 语义:定义变量var,本质就是让操作系统给你分配一块内存空间来存储数字
并且这块内存空间叫var名称,将来访问var名称就是在访问内存空间
并且这块内存空间的大小连续4字节,并且这4个字节的内存空间
的数字将来可以随时改变
注意:此时这块内存空间存储的是一个随机乱七八糟的数字
形式2:定义的同时并且初始化
int var = 250; //分配4字节内存空间并且同时往里面放一个250数字
形式3:定义之后再初始化
int var;
var = 250;
形式3:连续只定义多个变量
int var1, var2, var3; //定义三个变量var1,var2,var3
形式4:连续定义并且初始化
int var1 = 250, var2 = 251, var3 = 252;
形式5:连续定义多个变量之后再初始化
int var1, var2, var3;
var1 = 250;
var2 = 251;
var3 = 252;

#include <stdio.h>
int main(void)
{
    /*只定义变量*/
    int var1;
    printf("var1的值是%d\n", var1);

    /*定义并且初始化*/
    int var2 = 250;
    printf("var2的值是%d\n", var2);

    /*连续定义并且初始化*/
    int var3 = 251, var4 = 252;
    printf("var3的值是%d," "var4的值是%d\n", var3, var4);

    /*连续定义之后再初始化*/
    int var5, var6;
    var5 = 253;
    var6 = 254;
    printf("var5=%d, var6=%d\n", var5, var6);
    return 0;
}

3.问:变量名是否可以随意起名?
答:变量名(var)和函数名(printf)在C语言中统称标识符(用来区分,标识的符号)
标识符的名称规则:
3.1.不能以数字开头,第一个字符只能以字母和下划线开头,后面可以有数字
例如:int 2var; //错误
int var2; //可以
3.2.标识符不能用关键字(有特殊功能含义的单词)
目前掌握的关键字如下:include, int, void, main, return
例如:int int; //错误
3.3.要区分大小写
例如:int var 不等于 int Var;
3.4.采用驼峰或者下划线命名
驼峰:int nAge;
int CreateWindows
基本采用下划线命名:int create_windows;
4.变量的数据类型
4.1.数据类型的作用:让编译器gcc预算变量将来要分配的内存大小
不同的数据类型将来分配的内存大小不一样
4.2.C语言的基本数据类型:
在这里插入图片描述

4.3.有符号和无符号之分
1)每种数据类型都有有符号和无符号之分
2)有符号数据有正负之分,可以用signed关键字来修饰,也可以不用写
例如:

int var = 250;

等价于

signed int var = 250;

3)无符号数据只有0和正数,必须用unsigned关键字修饰

unsigned int var = 250; 

4.4.切记:unsigned int和unsigned long
对于32位/64操作系统,unsigned int分配的内存就是4字节
对于32位操作系统,unsigned long分配的内存就是4字节
对于64位操作系统,unsigned long分配的内存就是8字节
结论:如果将来用一个变量来保存内存的某个地址,一定要用unsigned long

4.5.基本数据类型详解之char(字符)
常量:其值不可改变,例如:250
1)字符常量用单引号’‘括起来,例如:‘A’,‘a’
区分大小写
2)本质:字符类型的变量对应的内存本质上存储的就是一个整数(数字)而已
这个数字有对应的专业术语叫ascii码
说明:字符和整数之间可以互转
例如:
字符 整数
‘A’ 65
‘B’ 66
‘a’ 97
‘b’ 98
… …
所以:‘d’-‘a’ = 本质就是 100-97=3
3)字符类型变量的占位符:%c,%d
例如:
char c = ‘A’; //表面看定义字符变量c并且初始化为字符常量’A’
//看清本质:就是分配1字节内存空间,并且往这个内存空间放了一个数字65
printf("c = %c\n", c); //打印输出按字符格式输出,c=‘A’
printf("c = %d\n", c); //打印输出按照整数格式输出,c=65

4)转义字符(特殊字符)
‘\n’:换行符,将光标移动到下一行的行首
‘\r’:回车符,将光标移动到当前行的行首
‘\t’:TAB键
‘\’:输出一个
‘’’:输出一个’
‘"’:输出一个"
‘%%’:输出一个%
例如:利用printf要求向屏幕上输出这些信息:
abc
(TAB键)cbd’efg’“hjk”%
答案:printf("abc\n\tcbd\\\'efg\'\\\"hjk\"\\%%\n");

#include <stdio.h>
int main(void)
{
    char c1 = 'A';
    printf("c1=%c\n", c1);
    printf("c1=%d\n", c1);

    char c2 = 'd';
    char c3 = 'a';
    printf("c3-c2=%d\n", c3-c2);
    char c4 = 65;
    printf("c4=%c\n", c4);
    char c5 = 'c';
    char c6 = 'e';
    int var = c6 - c5;
    printf("var = %d\n", var);
    //转义字符
    printf("abc\n\tcbd\\\'efg\'\\\"hjk\"\\%%\n");
    return 0;
}

4.6.基本数据类型详解之整型数据类型(int)
1)int特点:
int代表2字节或者4字节整数
可以用short或者long进行修饰,最终得到6大形势,也就是上面表格的内容
2)int的六种形式:
1.short (int)用2字节表示,有符号
例如:

short  int a = 250;
等价于
short a = 250;

2.unsigned short (int)用2字节表示,无符号
例如:

unsigned short int a = 250;
等价于
 unsigned short a = 250;

3.long (int)用4字节表示,有符号
例如:

 long int a = 250;
等价于
  long a  = 250;

4.unsigned long (int)用4字节表示,无符号
例如:unsigned long int a = 250;
等价于unsigned long a = 250;
5.int用4字节表示,有符号
例如:int a = 250;
6.unsigned int用4字节表示,无符号
例如:unsigned int a = 250;

4.7.整型常数
100:gcc编译器默认当成int类型
100L:gcc编译器当成long类型
100LL:gcc编译器当成long long类型
100u:gcc编译器当成unsigned int类型
100UL:gcc编译器当成unsigned long类型(最爱)
用途:用于后期课程的数据类型的转换用

4.8.基本数据类型详解之浮点数类型
float/double
例如:
1.23:gcc编译器默认当double类型,8字节
1.23f:gcc编译器当float类型,4字节
注意:浮点数在计算机中都是近似值
例如:1.23实际是1.2300001

4.9.数据类型和占位符之间的故事
数据类型 占位符
char %c(字符显示)和%hhd(整型数显示)
unsigned char %c(字符显示)和%hhd(整型数显示)
short %hd
unsigned short %hu
int %d
unsinged int %u
long %ld
unsigned long %lu
float %f或者%g
double %lf或者%lg
%f,%lf和%g,%lg区别在于前者会保留后面多余的0,后者不会保留

5.掌握sizeof关键字
1)作用:计算一个变量或者一种数据类型所占用的内存空间大小,会给你一个大小结果
单位是字节
2)格式:sizeof(变量名或者数据类型名),返回字节数
例如:int a = 250;
printf("sizeof(a)的大小是%d\n", sizeof(a));
printf("sizeof(a)的大小是%d\n", sizeof(int));
3)切记:sizeof关键字后面的小括号里对任何存储区内容的修改都是无效的

#include <stdio.h>
int main(void)
{
    int var = 250;

    printf("sizeof(var)大小是%d\n", sizeof(var)); 
    printf("sizeof(int)大小是%d\n", sizeof(int));
    printf("sizeof(3+2)大小是%d\n", sizeof(3+2));
    printf("sizeof(char)大小是%d\n", sizeof(char));
    printf("sizeof(unsigned char)大小是%d\n", sizeof(unsigned char));
   
    sizeof(var = 500);
    printf("var的值是%d\n", var);
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-07 13:32:31  更:2022-02-07 13:34:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:29:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码