当前位置:首页 » 编程语言 » c语言指针哪个难学
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言指针哪个难学

发布时间: 2022-06-21 15:35:49

❶ 为什么c语言指针那么难

指针确实难于理解。指针具有两个身份:

第一,指针本身是一个变量。只要是是变量,它就占用内存地址。当然如果没有分配内存地址,不在其内。

第二,指针包含一定的一个内容。指针所特殊的就是,他的内容保存的是其他变量的地址。

以上两点可以通过书中的示例7-7有比较好的体现。

例如,定义指针变量intp1。 intp1=&a 就表示 intp1保存的信息为a的地址。
而*intp1表示是intp1所保存地址的内存单元所保存的值,实际就是a的值。

所以,你给出的 *intp1=&a; 是一种不太合适写法。我们可以这样假设,再给一个变量b。令*intp1=b=&a,则
b=&a,说明b保存的a的地址,这样b就是一个指针。那*intp1=b,则说明 intp1所保存的地址指向的内存单元为b。所以,intp1可以看成a的指针的指针。

上面这个例子比较绕,慢慢想想,就理解了。

❷ C语言学到指针这个地方有点困难了,该怎样学,抓住什么关键点啊。

指针的话确实是C中最难得一块了,指针的本质是地址,要好好理解这个。一般指针在数组或是链表什么的用的比较多。数组的话可以对比一下用下标和用指针的区别,从而加深理解。当然,编程这个东西我觉得还是应该多练,多上机实践。

❸ C语言和C++的指针到底有多难

有人说难有人说不难,关键你怎么去理解指针 在我学习的时候就一点儿困难也没有,反而觉得它非常的好用 学习指针前,你要了解一下内存,知道cpu怎么得到数据 ,那么一切就easy了 提示一下 指针当作普通变量理解就可以,只是它所存储的是一个内存地址 ,然后你结合 * ,& 的效果一看,指针非常的简单

❹ 在C语言中,到底是指针难 学还是算法难学

从本质上来说,这应该属于一个伪命题。这两样东西是不应该被放在一起比较的。
指针是被设计来解决具体的问题的,就好象是一件工具,要想生产一辆汽车,你没有水压机,用锤子也能敲一辆出来。只不过慢一点而已。
但如果没有设计图纸,不了解发动机的工作原理,想要凭小学水平独立作一辆汽车,基本上不可能。
水压机就类似于指针,工作原理就类似于算法。
实际上也是如此,许多语言(例如JAVA)都没有指针的概念,但也工作的很好。

回到哪个更难的问题。实际上,任何人经过一段时间的训练后,都要以比较娴熟的掌握指针的常用用法,并彻底了解指针的概念。但算法不同,没人敢说自己对所有算法都掌握并能熟练运用了。
同样,在C语言中,对指针本身的研究基本停止了,毕竟这只是一个工具,就象没人肯研究锤子本身一样。人们主要研究的还是算法方法的东西。也就是怎么把工具用的更好。
所以,算法难学

❺ c语言指针,下面这题看不懂,求解😭

  1. while (*y++)

    因为++运算符优先级比*高,所以先对指针y加1,再取出指针y指向的 字符

    如果取出的字符不为0() 就循环

    因为字符串数组 a[]={hello} 是依字符''结尾,字符''的ASCII 码值 是0

    这样当指针y 指向''时 就结束循环。

  2. return (y-x-1)

    y x 都是指针,是内存地址,y-x-1 就两个指针相减再减1 ,返回运算结果。

  3. 从实际执行结果看 返回的是5

    这样y-x=6

    其实实际循环了5次,但是y 和 x 两个指针却相差6

    是因为++的优先级比*高导致的。

  4. 希望我的回答对你有点帮助,很高兴和你一起讨论和学习C语言。

    C语言的指针是比较难理解的知识点,需要多练习才能掌握。

❻ C语言最难学的是哪一部分最精髓的又是哪一部分呢

最难学的是数组,函数, 函数参数
函数和函数参数是最精髓的! 一定要学好
指针不算太难,认真点就行

❼ 听说C语言的指针学起来很难求指教.

你把指针看成一般变量就行了,只不过类型是指针型的,就像整型变量是整型一样。
一般变量存放的数值,而指针变量存放的是地址,如把存放数值的内存空间看做房间,地址就是门牌号码,指针变量就是记录了门牌号的纸条,用指针就能找到房间,从而得到里面的数值。
所以,你直接用指针变量,得到的是一个地址,前面加一个*就是取这个地址里的值。
另外,和其它变量一样,指针的值是可以改变的,你可将同类型数据地址赋值给同一个指针变量。

❽ C语言的学习很难吗

学c语言真的很难吗?人们对于未知的事物都有一种畏惧的心理,在没有接触过C语言的时候总是认为他很难,等自己真正接触过后才知道原来很容易。

很多人都认为C语言的发展前景不错,但是都一点畏惧,怕学习不懂,都觉得学习C语言非常难,如果是没有基础的情况学习时会更加吃力。那么C语言到底是不是真的学习比较难呢?

其实C语言是所有编程语言中比较难的编程语言,因为C语言属于底层语言,可以用来做硬件接口开发,逻辑性也还比较强,另外涉及到比较深的算法,对学习者有一定数学基础要求。所以在学习时确实比其他编程语言相对来说难一些。如果你有一定编程基础,数学底子比较扎实,学习C语言相关来说比较容易。

我建议高中生以及低学历的同学最好不要学习C语言,因为低学历学历能稍微差一些,在加上自学能力没有高学历人群强,而且低学历本身就基础差,不适合学习C语言,非常你对C语言编程兴趣非常浓,能做到除了吃饭睡觉你的生活中就是C语言了,我建议你可以学习C语言,否则你最好不要碰它。

❾ C语言最难学的是什么

嗯,很佩服lz的自学能力。
谭浩强的c语言的书,很权威,很详细,很适合自学的。
学习c语言很重要的一点就是学习理论知识与上机训练结合起来。学完一章后就按课本后面的习题上机练练。这样稳扎稳打的学起来很好了。又win—tc软件配合上机训练不错。
指针是学习者公认的最难学的。还有指向指针的指针。后面还有结构体和链表,里面都有用到指针的知识。如果指针学得后,那在以后的设计里会相当实用方便。

❿ C语言中指针很难学吗

一般人觉得指针难学因为在学指针前还没把表达式和变量的概念搞清楚。
1. 指针变量保存的是内存地址。用指针访问数据也称为间接寻址。类似于你找一个人,他住在“第一大院”。你直接去找第一大院就是直接寻址。如果他的住址只有一个住在“第五大院”的人知道,你去第五大院问出他家在第一大院这就是间接寻址。
1.+ 对于上面这种情况,如果我们认为第五大院是“知道他家住址的那个人的住址”,我们就可以进行一连串的间接寻址。另一方面也说明指针变量保存的地址也是数据的一种。
2. 指针变量的类型。指针变量的类型目的*仅仅*在于减少编程中可能发生的错误。这一点必须明确。根本上说指针变量的类型就是地址。我们为了避免不必要的错误强行加上了“只能保存整数的地址”之类的约束。好比住在第五大院的人只会去记中年人的地址。
3. 指针的操作。
3.0 声明:类型A的指针的类型写作 类型A* 比如int*。与此同时int*本身也是类型,我们可以写int**。就是int的指针的指针。
3.1 获取地址,对于内存变量表达式 &运算符可以获得其地址,类型是表达是类型的指针。比如对于变量int a。&a获得的就是类型是int *的a的地址。
3.2 重定向,对于指针变量或者指针变量表达式。*运算符可以获得其指向地址的变量,类型是原指针的上一级。对于int a; int* p = &a; *p等价于a,类型是int。因为*p是变量,我们可以进行x = *p(取值)和*p = 0(赋值)操作。
3.3 &和*都可以对变量表达式进行操作。比如数组int a[10]。我们可以通过&a[5]获得a第5个元素的地址。又如int** a。*a是一个int*类型的变量,我们可以进一步地**a获得类型是int的变量,这就是从第六大院的人口中问出知道A君住址的人在第五大院,然后再去第五大院问出A君住在第一大院的过程。
4. 数组和指针的混合。这个可以说是C/C++语法的bug...
int* a[4] 这个类型可以看成(int*)[4] 元素是int*类型,有4个元素
int (*a)[4] 这个其实是(int[4])* 指向int[4]类型变量的指针。
4.+ 数组变量其实也是指针。int b[4]; 变量b在多数情况下就是一个const int*,指向数组b所占用的内存,也就是数组b的第一个元素。*b和b[0]是等价的。对于int *a;我们可以直接进行a = b的操作,让指向数组b。
5. 指针的加法。对于int *a;我们可以进行a + N, a - N的运算。a + 1指向a指向的元素的下一个元素,相应的a - 1指向上一个元素,以此类推。于是*(a + 1)就对a指向的下一个元素进行重定向,等价于数组运算a[1]。
5.+ 对于int *a, *b; a - b获得的是b到a之间相差多少个元素,类型是int。比如 int x[5]; int *a = &x[0], *b = &x[3]; b - a的结果是3。相应的a - b的结果是-3
这些大体概括了指针的基本内容,可能有疏漏,指针的应用就是指针的基本操作和其他表达式、变量操作的配合。