我们可以利用c的库函数给的方式将INT CHAR LONG SHORT (整形)的最大 最小的范围
(一定不能在开辟空间的时候,不能超越,容易出问题)
#include
#include
int main()
{
printf("The number of bits in a byte %d\n", CHAR_BIT);//8
printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);//-128
printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);//127
printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);//255
printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);//-32768
printf("The maximum value of SHORT INT = %d\n", SHRT_MAX);//32767
printf("The minimum value of INT = %d\n", INT_MIN);//-2147483648
printf("The maximum value of INT = %d\n", INT_MAX);//2147483647
printf("The minimum value of CHAR = %d\n", CHAR_MIN);//-128
printf("The maximum value of CHAR = %d\n", CHAR_MAX);//127
printf("The minimum value of LONG = %ld\n", LONG_MIN);//-2147483648
printf("The maximum value of LONG = %ld\n", LONG_MAX);//2147483647
return 0;
}
利用大写就可以得出其他
而浮点数需要利用《float.h》库函数
#include
#include
int main()
{
float fMax = FLT_MAX; //单精度浮点型最大值
float fMin = FLT_MIN; //单精度浮点型最小值
printf("float max:%f\n", fMax); //3.402823466e+38F
printf("float min:%f\n", fMin); //1.175494351e-38F
return 0;
}
整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量)
**0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。
********************我是分隔符*********************
大小and其他写 [‘A’、‘c’、‘@’、‘9’、‘#']
********************我是分隔符*********************
[换行符(\n)或制表符(\t)]
********************我是分隔符*********************
括在双引号 "" 中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符
//我们经常写的(好多语言都写的)
//你好!世界。
#include //预处理器指令
int main()//函数
{
/*入门print*/ //注释
printf("Hello, World! \n"); //语句表达式
return 0;//当我们学习 函数 这个章节就会明白 return一下的含义了
}
********************我是分隔符*********************
#define LENGTH 10 #define WIDTH 5
//替换语句 #define MAX(x,y) ((x)>(y)?(x):(y))
********************我是分隔符*********************
const int LENGTH = 10; const int WIDTH = 5;
这个在不能随意的更改数据 在该语句下尽量不该
但是我们可以通过 指针更改
#include
const char arr[10]="hello";
(常用骆驼命名法)
程序可操作的存储区的名称
变量名不能和编译器给定的关键字所重复 否则编译器分不清哪个是数据类型那个是变量名
我们可以用sizeof来得知该类型占据的字节大小(sizeof是一个运算符,可以求取参数变量/类型占的空间大小)
# include
int main()
{
printf("sizeof(char): %d\n", sizeof(char));//1
printf("sizeof(short): %d\n", sizeof(short));//2
printf("sizeof(int): %d\n", sizeof(int));//4
printf("sizeof(long): %d\n", sizeof(long));//4/8
printf("sizeof(long long): %d\n", sizeof(long long));//8
printf("sizeof(float): %d\n", sizeof(float));//4
printf("sizeof(double): %d\n", sizeof(double));//8
return 0;
}
而指针型的在32为下占据4字节 64为电脑下8位
printf("sizeof(char*): %d\n", sizeof(char*));
printf("sizeof(short*): %d\n", sizeof(short*));
printf("sizeof(int*): %d\n", sizeof(int*));
printf("sizeof(long*): %d\n", sizeof(long*));
printf("sizeof(long long*): %d\n", sizeof(long long*));
printf("sizeof(float*): %d\n", sizeof(float*));
printf("sizeof(double*): %d\n", sizeof(double*));
强制类型转换
int aa= 8,bb = 5;
double mean;
mean = (double) aa / bb;
printf("Value of mean : %f\n", mean );
int i = 17;
char c = 'c'; /* ascii 值是 99 */
int sum;
sum = i + c;
printf("Value of sum : %d\n", sum );
//在这里,c 首先被转换为整数,但是由于最后的值是 float 型的,所以会应用常用的算术转换,编译器会把 i 和 c 转换为浮点型,并把它们相加得到一个浮点数。
变量的强制类型转换 方式 a=(float)(变量名)
1.。static (静态变量)使得变量不销毁 生命周期延长是整个程序的执行期
2.。与auto形成对比 auto是用完就销毁(auto存储类是所有局部变量默认的存储类)
#include
int n = 10; //全局变量
void ff1(){
int n = 15; //局部变量
printf("ff1 n: %d\n", n);
int main(){
int n = 30; //局部变量
ff1();
{
int n = 40; //局部变量
printf(" n: %d\n", n);
}
printf("main n: %d\n", n);
return 0;
}
##某个函数或块的内部声明的变量称为局部变量##
优先使用局部变量
#include
int main ()
{
/* 局部变量声明 */
int a, b;
int c;
/* 实际初始化 */
a = 1;
b = 2;
c = a + b;
printf ("value of a = %d, b = %d and c = %d\n", a, b, c);
return 0;
}
定义在函数外部,通常是在程序的顶部
全局变量在声明后整个程序中都是可用的。下面是使用全局变量和局部变量的实例
#include
/* 全局变量声明 */
int g;
int main ()
{
/* 局部变量声明 */
int a, b;
/* 实际初始化 */
a = 1;
b = 2;
g = a + b;
printf ("value of a = %d, b = %d and g = %d\n", a, b, g);
return 0;
}
局部变量和全局变量的名称可以相同,但是在函数内,如果两个名字相同,会使用局部变量值,全局变量不会被使用。
#include
/* 全局变量声明 */
int g = 20;
int main ()
{
/* 局部变量声明 */
int g = 10;
printf ("value of g = %d\n", g);/
return 0;
}
value g=10
来一次 对比
int main()
{
int i = 0;//这是代码块外部-i全局变量
for(i=0;i<10;i++)
{//代码块开始
int j=0;//这是代码块内部-j局部变量
for(j=0;j<10;j++)
}//代码块结束
}
变量的生命周期就是从创建该变量开始到该变量被销毁的这一段时间
C语言变量及其生命周期 - CodeMaker+ - 博客园 (cnblogs.com)
出了程序就销毁
而我们一般的都在数据类型前有auto (这个省略写了)
static是静态变量(执行完不会销毁,直至代码结束)
#include
void test1()
{
static int m = 1;
int x=1;
m = m + 1;
printf("%d ", m);
printf("%d",x);
}
void test2()
{
int x=1;
printf("%d",x);
}
int main()
{
int n = 6
while (n < 5)
{
test1();
test2();
n++;
}
}