C编程的简单使用2
1. 简单操作符
1.1 算数操作符
算数操作符中“ + - * /(加减乘除)”就不必多说,现在说一下“%(取模)”,其实就是取余数,例如:
// 9 % 2 就相当于 9=4*2...1,所以其结果为1
1.2 移位操作符
<<左移,>>右移,在计算机中一般为二进制存储,
所以 1010 << 1 =10100;
写成十进制就是:10 << 1 =20;
也就相当于:a << 1 =a * 2;
同理 a >> 1 =a / 2
1.3 位操作符
^ (异或:相异为真,相同为假);
10 ^ 12 = 6;拆成二进制 1010 ^ 1100 = 0110;
& (按位与:左右都为1,结果为1,否则为0,通常可以用来检测1的个数);
10 & 12 = 8;拆成二进制 1010 &1100 = 1000;
| (按位或,只要有一侧为1,结果就为1);
10 | 12 =14 ; 拆成二进制1010 & 1100 = 1110;
1.4 赋值操作符
= ,+= , -= , *= ,/= ,&=, ^= , |= , >>= , <<=
a+=1 相当于 a=a+1,其余以此类推
1.5 逻辑操作符
&& 逻辑与(一假则假); || 逻辑或(一真则真)
1.6 单目操作符
!:逻辑反;
& :取地址;
sizeof :求操作数的类型长度(以字节为单位);
~ :对一个数的二进制按位取反;
++:自增(前置、后置);
--:自减(前置、后置);
1.7 三目运算符
exp1 ? exp2 :exp3;(先判定1,为真结果为2,为假结果则为3)
2. 简单关键字
2.1 typedef
在C语言中,typedef被称作类型定义,或者类型重命名;(可重新将一个复杂类型名称重新命名为简单字符串)
例如:
//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
//观察num1和num2,这两个变量的类型是一样的
unsigned int num1 = 0;
uint_32 num2 = 0;
return 0;
2.2 static
在C语言中,static是用来修饰变量和函数的
- 修饰局部变量-静态局部变量
void test()
{
static int ii=0;//(定义变量:只会被初始化一次,但是可以被多次赋值)
ii++;//static修饰局部变量:变量的生命周期变成全局,但是作用域依然在本函数
printf("%d\n",ii);
}
int main()
{
int i = 0;
for(i=0; i<10; i++)
{
test();
}
return 0;
}//可以将static加上和去掉,分别观察程序运行结果。
- 修饰全局变量-静态全局变量
a:全局变量一般可以跨文件使用;
b:static修饰全局变量,该变量只能在本文件内使用;(影响其作用域) - 修饰函数-静态函数
a:函数可以跨文件访问;
b:static修饰函数,函数只能在本文件内被访问。
3. 指针简单入门
3.1 指针
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的 。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。 一般的地址都具有明显的指向性,我们一般把地址就叫做指针。
int main()
{
int num = 10;
#//取出num的地址
printf("%p\n", &num);//打印地址,%p--以地址的形式打印
return 0;
}
如上,由于地址是连续的,所以储存变量时往往是多个连续的地址,所以在取地址时所取的地址是保存这个变量诸多地址中地址最小的一个地址。
3.2 定义指针变量
那地址如何存储,需要定义指针变量。(指针是地址,指针变量是变量,这个变量中存的是另一个变量的地址)
int num = 10;
int *p;//p为一个整形指针变量
p = #
指针的使用实例:
#include <stdio.h>
int main()
{
int num = 10;
int *p = #
*p = 20;
return 0;
}
以整形指针举例,可以推广到其他类型,如:
#include <stdio.h>
int main()
{
char ch = 'w';
char* pc = &ch;
*pc = 'q';
printf("%c\n", ch);
return 0;
}
3.3 指针变量的大小
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char *));
printf("%d\n", sizeof(short *));
printf("%d\n", sizeof(int *));
printf("%d\n", sizeof(double *));
return 0;
}
指针大小在32位平台是4个字节,64位平台是8个字节。
注:各位读者阅读完本文,如果对你有所帮助,还请一键三连哦!如果文章有不妥之处,欢迎在下方评论指出!