粗滤的估计一下,C语言的博客估计会有四篇左右吧,适合有一定基础的人看,也希望有想法的人和自己一起讨论,小弟在这里不胜感激。那么废话不多说,我们继续开始C语言之旅~
一,二级指针
目前来讲,自己关于二级指针用的场景还真不多,即便是能用的情况也可以根据别的形式来完全替代,也可能是我的经验有限,但是二级指针的一个用途却不得不引起我们的注意,有一句话说的好,学C语言的人如果不懂指针那就和没学过C语言没有什么差别。
而二级指针的最大作用就是可以随意改变指针的指向,这在以后的开发中会提供很大的方便,就是对于初学者来说二级指针的形状有一点怪,刚开始用的时候不太适应,但是我相信时间长了这些问题都可以被解决的。
例:int **p;
二,int *p(int) 和 int(*p)(int)
int *p(int);
这是一个函数,它的参数是一个整形,返回值是一个指向整形的指针。
int (*p)(int);
也可以看成 int A(int);
这是一个指针,它指向参数是int,返回值是int的函数。函数指针。
三,int *p[10] 和 int (*p)[10]
int *p[10];
也可以看成 int *A;
这是一个数组,它有10个元素,每个元素是指向整型变量的指针。
int (*p)[10];
也可以看成 int A[10];
这是一个指针,它指向10个整形元素的数组。
四,将字符串转化为数字
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a1 = atoi("123");
int a2 = atoi("-123");
int a3 = atoi("123u123");
int a4 = atoi("-123-123");
printf("%d %d %d %d\n", a1, a2, a4, a4);
return 0;
}
五,找到子串在字符串中的位置
#include<stdio.h>
#include<string.h>
//char *
//strstr(const char *s1, const char *s2);
int main(void)
{
char *p = "Welcome to to prison";
char *q = "to";
char *ret = strstr(p, q);
if(ret != NILL){
printf("%s\n", ret);
}
return 0;
}
如果没找到,返回值为空
六,strtok:字符串分割函数
#include<stdio.h>
#include<string.h>
int main(void)
{
char buf[] = "Welcome to prison"
char *p = strtok(buf, "");
printf("%s\n", p);
return 0;
}
strtok的用法
#include<stdio.h>
#include<string.h>
int main(void)
{
char buf[] = "Hello, Welcome to prison";
char &p = buf;
char *q[5] = {};
int i = 0;
while(1){
p = strtok(p, ",!");
if(!p){
break;
}
q[i++] = p;
p = NULL;
}
for(i = 0; i < 5; i++){
if(q[i]){
printf("%s\n", q[i]);
}
}
return 0;
}
代码有点多,不过纯手写,还真是费劲,真怀念Xcode的强大啊,快了,还有不到一个月的时间苹果电脑就到了,好好领会上面的代码会对我们的程序人生有着强大的帮助,想写这些,欲知后事如何,请听下回分解。
本文出自 “刚看完一个电影” 博客,请务必保留此出处http://9527606.blog.51cto.com/9517606/1615440
原文:http://9527606.blog.51cto.com/9517606/1615440