#include <stdio.h>
# define PI 3.14 // 宏定义的结束没有分号
int main(void)
{int r = 3;//圆的面积 s = PI * r * rfloat s = PI * r * r;//圆的周长 c = 2 * PI * rfloat c = 2 * PI * r;printf("圆的周长为:%.2fn", c); // .2f 小数点后保留两位,对第三位四舍五入printf("圆的面积为:%fn", s);return 0;
}
定义语法:类型名 变量名 = 变量值。(一般方法)
变量三要素:类型名、变量名、变量值。 int r = 3; float s = PI*r*r;
(变量值是一个表达式)
变量的定义: int a = 40;
变量的声明: 1) int a;
没有变量值的变量定义 叫做声明。
2)extern int a;
添加了关键字 extern。 告诉编译器只是做一个声明操作,防止声明被提升
#include <stdio.h>
int main(void)
{//int a; //声明//a = 56; // 变量使用,变量赋值//int a = 40; // 变量定义,这样会出错【变量重新定义】,是因为运行到第6行时,会自动将第5行升级为定义/*extern int a; //显示的做变量a的声明a = 56; // 变量使用,变量赋值int a = 40; // 变量定义,这样会出错【变量重新定义】,是因为运行到第6行时,会自动将第5行升级为定义*/extern int a;a = 56; // 运行时【无法解析关键字a】,因为加了extern的声明无法提升return 0;
}
命名规则:
通常常量使用大写、变量使用小写。大小写严格区分。
只能使用字母、数组、下划线命名标识符。且,数字不能开头。 a-z/A-Z/0-9/_
int a5ir = 10; okint _34F = 6; okfloat s2_i85c = 5.4; okint 98ti_54 = 4; error.
禁止使用关键字和系统函数作为标识符名称。 ```main/system/printf/sleep…``
【理解】自己定义的变量和常量的名字
不是函数。用来求一个变量、类型的大小。 返回一个 无符号整数size_t。 使用 %u 接收返回值。
方法1: sizeof(类型名) -- sizeof(int)
方法2: sizeof(变量名) int a = 20; sizeof(a)
【了解】: sizeof 变量名/类型名 举例1: sizeof int
把括号省略掉了
举例2: sizeof a
#include <stdio.h>
int main(void)
{int a = 10; // 定义有符号整数 a, 给a赋初值为 10short b = 20; // 定义有符号整数 b, 给a赋初值为 20long c = 30L; // 定义有符号整数 c, 给a赋初值为 30, 可以简写为 long c = 30;long long d = 40LL; // 定义有符号整数 d, 给a赋初值为 40, 可以简写为 long long d = 40;printf("sizeof(a)= %un", sizeof(a));printf("sizeof(b)= %un", sizeof(b));printf("sizeof(c)= %un", sizeof(c));printf("sizeof(d)= %un", sizeof(d));printf("按类型, int 大小为:%un", sizeof(int));printf("按类型, short 大小为:%un", sizeof(short));printf("按类型, long 大小为:%un", sizeof(long));printf("按类型, long long 大小为:%un", sizeof(long long));
}
signed | 有符号 | (超级不常用, 通常省略) | ||
---|---|---|---|---|
int | %d | 4 字节 | int 名 = 值; | int a = 10; a = -7; |
short | %hd | 2字节 | short 名 = 值; | short s1 = 3; |
long | %ld | 4 字节 (windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节) | long 名 = 值; | long len = 6; |
long long | %lld | 8 字节 | long long 名= 值; | long long llen = 70; |
unsigned | 无符号 | 只表示数据量,而没有方向(没有正负) | ||
---|---|---|---|---|
unsigned int | %u | 4 字节 | unsigned int 名 = 值; | unsigned int a = 40; |
unsigned short | %hu | 2 字节 | unsigned short 名 = 值; | unsigned short s1 = 3; |
unsigned long | %lu | 4 字节 (windows: 32/64: 4字节; Linux:32位:4字节, 64位:8字节) | unsigned long 名 = 值; | unsigned long len = 6; |
unsigned long long | %llu | 8 字节 | unsigned long long 名 = 值; | unsigned long long llen = 70; |
#include <stdio.h>
int main(void)
{unsigned int a = 10u; // 定义无符号整数 a, 给a赋初值为 10, 可以简写为 unsigned int a = 10;unsigned short b = 20u; // 定义无符号整数 b, 给a赋初值为 20, 可以简写为 unsigned short a = 10;unsigned long c = 30Lu; // 定义无符号整数 c, 给a赋初值为 30, 可以简写为 unsigned long c = 30;unsigned long long d = 40LLu; // 定义无符号整数 d, 给a赋初值为 40, 可以简写为 unsigned long long d = 40;printf("sizeof(a)= %un", sizeof(a)); //按变量名 求变量 a 的大小printf("sizeof(b)= %un", sizeof(b)); //按变量名 求变量 b 的大小printf("sizeof(c)= %un", sizeof(c)); //按变量名 求变量 c 的大小printf("sizeof(d)= %un", sizeof(d)); //按变量名 求变量 d 的大小printf("按类型, unsigned int 大小为:%un", sizeof(unsigned int));printf("按类型, unsigned short 大小为:%un", sizeof(unsigned short));printf("按类型, unsigned long 大小为:%un", sizeof(unsigned long));printf("按类型, unsigned long long 大小为:%un", sizeof(unsigned long long));
}
输出:
sizeof(a)= 4sizeof(b)= 2sizeof(c)= 4sizeof(d)= 8按类型, unsigned int 大小为:4按类型, unsigned short 大小为:2按类型, unsigned long 大小为:4按类型, unsigned long long 大小为:8
存储一个字符。本质是ASCII码。 ‘A’、‘a’、‘%’、‘#’、‘0’
格式匹配符: %c
‘A’:65 | ‘a’:97 | ‘0’:48 (字符0) | ‘n’:10 | ‘ ’: 0 (数字0)
【注意】一定是英文的单引号不是双引号,双引号是字符串
#include <stdio.h>
int main(void)
{char ch = 'a';printf("sizeof(ch) = %un", sizeof(ch));printf("%cn", 97); //字符'a'printf("%cn", 65); //字符'A'char A = 'A'; // 定义字符变量 A, 初值为 ‘A’char a = 'a'; // 定义字符变量 a, 初值为 ‘a’printf("a = %dn", a); //字符'a'的ASCII的值97printf("A = %dn", A); //字符'A'的ASCII的值65printf("A = %cn", 'a' - 32); //小写a转大写Aprintf("a = %cn", 'A' + 32); //大写A转小写ach = ' ';printf("空格ASCII的值:%dn", ch); //空格ASCII的值 32printf("'\n'ASCII的值:%dn", 'n'); //换行符ASCII的值 10printf("字符'\0':%dn", '