c语言的指针和函数学得很糟糕 看到算法就头疼 该怎么破

Python014

c语言的指针和函数学得很糟糕 看到算法就头疼 该怎么破,第1张

首先看下一些概念的东西,像函数指针指针函数等等,

函数指针,是一个指针,指向一个函数,这个函数作为参数,在回调函数中经常用到,

指针函数,是一个函数,他返回值是一个指针,像字符串里面的strdup()函数就是这样的,

简单算法实际上不难,没有涉及到什么BP神经网络等,主要就是遍历,和一些规律的东西,参照一些数据结构里面的广度和深度搜索,以及递归,正则等等思想,很多算法还是很好看的,

看一个程序,首先你要想,要是你来做,你应该怎么实现,很多程序还是可以的

#include<stdio.h>

char zhuanhuan(char *p)//要在main中使用这个函数 要不函数在main前面或者这样写下。

int main()

{

char i,chuan[50]

//chuan的空间多大要定义啊chuan[]这样不对啊计算机怎么知道你要几个空间呢?

printf("请输入一串字符串:\n")//这里用了中文的 ;

scanf("%s",chuan)//你的输入函数呢?

zhuanhuan(chuan)//传chuan字符串的首地址

printf("转换后的字符串为:%s\n",chuan)//没写;chuan[]这!!

return 0//int main()有返回值为int 要有返回值

}

char zhuanhuan(char *p)//得到chuan的首地址 char 可以不写了不用返回值可以 char写成void

{

char chuan

/*chuan在main中定义在这个函数中不能使用的,

要重新定义 你可以定义一样的,这和main中是不同的值,

函数调用好后 这里的值的空间销毁*/

//p=chuan[0]

/*chuan[0]是一个值不能赋值给指针,指针只能放地址

你要赋首地址也已经在函数进入的时候赋值了*/

if(*p>='a'&&*p<='z')

*p-=32

p++//这里要指向下一个字符

while(*p!='\0')// p!=0 地址指向0?不对啊

{

if(*p>='A'&&*p<='Z')

*p+=32

++p

//return chuan怎么写这里?执行到return 直接返回main了

}

return chuan//没必要写返回值

}

计算机识别不了谭浩强的c语言是因为谭浩强书中的代码很不规范,代码风格非常糟糕。对于刚入门的初学者能够把C语言讲的通俗易懂的也就只有谭浩强的书了,学完了谭浩强的C语言程序设计你考计算机二级是没有问题的。如果一个人他的技术在谭浩强之上而且可以写一本比这本书跟好的书可以说谭浩强的书是垃圾。否则连说的资格都没有。学习知识是要勤奋加刻苦的,学不好,怪书出的不好无话可说。如果英文足够好可以考虑看英文的书籍。