C语言新手可以看看这篇文章,大有所获!

strlen()函数,作用是输出字符串的长度。使用方法printf(“%d\n”,strlen());strlen括号里面写入数组名称。

# include <stdio.h>
void main(){
char arr1[]="abcde";
char arr2[]={'a','b','c','\0','a'};
printf("%d\n",strlen(arr1));
printf("%d\n",strlen(arr2));
return 0; 
}

转义字符:转变原来意思的字符;
让某一个字符具有其他意义。例如:\n(换行),\t(长长的空白),

# include <stdio.h>
void main(){
printf("111??\\t111");
return 0; 
}

如果不想让\n或者\t这样的转义字符使用转义,就在\前再加一个\这样的话就可以防止它被解释为一个转义序列符。
我们数字符长度时,一定要注意,\t,\n这种转义字符为一个字符"%C:\test\32\test.c"像这样的一串字符串,长度只有13,因为\32算一个转义字符
C语言和java注释方法是一样的。
sizeof()函数是库函数,作用是计算变量或类型所占空间的大小。
局部变量和全局变量名字相同的情况下,语法不会出错,但是局部变量优先。
使用sizeof函数求数组长度时会出现一些问题,比如:
int arr[]={1,2,3,4,5,6};
printf(“%d”,sizeof(arr));
printf(“%d”,sizeof(arr)/sizeof(arr[0]);
这两个输出结果是不一样的,第一个输出语句会输出6*4=24,输出的是整型数组6个元素的整体的int的长度,而第二个指的是总元素大小去除第一个元素大小,这样才能求出数组里一共有多少个元素。
~这个符号的是意思是按位取反,指的是二进制的反码。例如:
int a=0;
int b=~a;
printf(“%d”,b);
这时候输出的是-1.
我们打印的是原码,int占4个字节,一个字节8个byte,所以a的原码是
00000000000000000000000000000000
b的原码是
11111111111111111111111111111111
这里有32个1,指的是a的补码,而输出的是a的原码,所以我们先减一求出反码,也就是
11111111111111111111111111111110;
然后再求出原码,符号位不变,其他取反,所以是
10000000000000000000000000000001
所以最终的结果应当为-1.
后置++的意义是先使用这个变量的值,再++;
int a=10;
int b=a++;
printf(“%d,%d”,a,b);
这个输出的结果就是11,10.
如果是先++,那就是先++再使用。
int a=10;
int b=++a;
printf(“%d,%d”,a,b);
这时,结果就是11,11.
C语言也有强制类型转换,和java差不多如: int a=(int)3.14;
C语言常见关键字
auto:一般加在变量的类型前,会忽略,因为基本每一个变量的类型前都可以加上这样一个关键字。
break:跳出循环,或加载switch语句的每一个case语句的结尾。
case:与switch语句一起用
const:与final差不多,修饰常变量。
continue:用在循环中。
default:用在switch语句中。
enum:枚举
extern:引用外部符号
goto:goto语句
register:寄存器关键字
计算机存储数据:硬盘,内存,高速缓存,寄存器
运用寄存器:register int a 比较重要的变量放在寄存器中
struct:结构体关键字。
union:联合体关键字/共用体
以上为作者本人觉得比较重要的或者比较符合我学习的关键字,有些比较难的或者用不上或者我觉得没有记录的必要的关键字就没有写上,见谅。
typedef:类型定义,类型重定义,举例如下:
unsigned int a=10;
如果我觉得这个长度太长或者在接下来的代码中会大量运用的话,使用tydepef关键字可以做出修改
typedef unsigned int u_int;
这样就把那么长一串变成了u_int;
static关键字:修饰变量和函数,静态修饰符,用一个代码来举例:

int test(){
	static	int a=1;
	printf("a是%d",a);
	a++;
}
void main(){
typedef int in;
in i=0;
while(i<5){
	test();
	i++;
}
return 0;
}

如果不加static那么a经过test这个函数以后就会消亡掉,但是加上了static这个函数以后就不会消亡,我们的a++这一行代码被累积起来了。
所以static有个作用就是修饰局部变量,当它修饰局部变量以后,变量的生命周期就演延长了
我们接下来研究如果static修饰全局变量的情况,在这之前,我们先说一下extern的作用,只要是两个或以上的源文件,只要用了extern这个修饰符修饰了以后,就可以在不同的原文件里使用extern修饰的变量。
如果一个变量既被static修饰了,又被extern修饰了,那我们在另外一个源文件里调用这个变量会怎么样呢,此时,就会报错,这个时候就不能使用了,和java类似。static还可以修饰函数,作用和static修饰全局变量类似。,改变了函数的作用域。当然了,extern也可以修饰函数,但是在调用这个函数的源文件里需要加上extern关键字,函数返回值类型,函数参数类型才能进行调用。
#define关键字,它修饰变量时,语法如下:
#define MAX 100;当代码中出现MAX时,统统都会换成100.用#difine定义标识符常量,写在main函数外面,#define也可以用来定义宏,宏是什么?如果按照小编这半桶水的水平,宏就是替代。
比方说,我们写一个函数,可以找到两个数中的较大值:

int Max(int x,int y){
if(x>y){
return x;
}else{
return y;
}
}

在主函数中这样写:
int a=10;int b=11;
int m=Max(a,b);
那么输出的值显而易见就是11.
如果用宏的方式去写,就是这样:
#define MAX( X, Y) (X>Y?X:Y)注意!宏的参数里不可以写变量的类型,否则会报错.
在主函数中这样写
int max=MAX(int a,int b);
在编译器看来a和b就被宏替代成(a>b?a:b);
今天累了,明天指针

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值