好久之前的了,学习c语言的笔记。
依旧是老套路,从基础的变量类型,到函数定义一步步学起
#include <string.h>
#include <stdio.h>
//printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。
//但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件
//c语言的常用输入输出与操作符
void test()
{
int a = 5;
char put[] = "iuput your number:";
//printf函数按格式输出指定变量 printf(“格式控制字符串”, 输出变量表列)
//一个原理就是变量的名字实际上就指代一个指针,指向变量的内存 而后根据格式控制读取相应的大小数据并输出
printf("your old number is: %d \n", a);
printf("%s \n", put);
//scanf函数是一个接收控制台输入的函数,存储到变量
scanf("%d", &a);
printf("your new number is: %d \n", a);
char putstr[] = "asdfds";
puts(putstr); //直接输出字符串
//常用控制字符如下:
//
//格式字符 意义
// d 以十进制形式输出带符号整数(正数不输出符号)
// o 以八进制形式输出无符号整数(不输出前缀0)
// x, X 以十六进制形式输出无符号整数(不输出前缀Ox)
// u 以十进制形式输出无符号整数
// f 以小数形式输出单、双精度实数
// e, E 以指数形式输出单、双精度实数
// g, G 以%f或%e中较短的输出宽度输出单、双精度实数
// c 输出单个字符
// s 输出字符串
//操作运算符
int aa = 30;
int bb = 10;
int cc = aa / bb; // + - * /
printf("+ - * / the result is :%d \n", cc);
//c语言指针的精髓 就是这两个符号 理解什么是取地址 什么是取指向的内容
//& 取地址运算符 获取变量地址
printf("& the address is :%d \n", &cc);
//取内容运算符 即代表指针的意思
int *intp = &aa; //定义一个指针 指向aa的地址
printf("* the address and value is :%d--%d\n", *intp,intp); //*intp取指针的内容 即aa变量
int **p = &intp; //定义指针的指针 p指向intp的地址 *p是intp的内容 **p则是aa的内容
printf("** the address and value is :%d--%d\n", **p, p); //*intp取指针的内容 即aa变量
// ~按位反
int d = ~bb;
printf("~ operator by bit :%d \n",d);
//<<左移位 >>右移位
int e = 1;
int shifte = e << 2;
printf("left shift << is :%d \n", shifte);
//逻辑 &&与 ||或 !非 按位与或 & | 异或^
if (e > 0 || d > 0) //逻辑或运算
printf("|| operating success!\n");
if(e|aa>0) //按位或运算
printf("| bit operating success!\n");
//比较字符 > < == <= >= != 不举例子了
//自运算符 ++ -- 自加 自减
int as = 100;
as--;
printf("-- operator result is:%d--%d\n", as+1,as);
//三目运算符 (表达式)?1:2 自带判断 成立执行1 否则2
int three = as + 2 > 100 ? (1) : (2); //如果是表达式 则需要小括号括起来
printf("? operator result is:%d\n",three);
//如果前边有scan 那么会接收一个缓冲区字符 从而结束 这是后需要两个
gets(); //接收一个字符 控制程序别结束
gets();
}