91视频网是一个分享宅男福利的综合社区,精选优质的福利资源分享给大家!

指针与数组互换,为什么定义一个指针赋值为0后无法运行,赋值str

91福利

数组引用的交换 网友小小男孩真漂亮说:不可能,赋值运算符“=”是二目运算符,根据C/C++文法规则,其第一个操作数,即左操作数,必须是能够作为“左值”的操作数,而数组名(包括其引用)不能作为左值,这是不符合语法规则的。无论想什么办法也无济于事。 再说


指针与数组互换,为什么定义一个指针赋值为0后无法运行,赋值str后部分结果有问题
数组引用的交换
网友小小男孩真漂亮说:不可能,赋值运算符“=”是二目运算符,根据C/C++文法规则,其第一个操作数,即左操作数,必须是能够作为“左值”的操作数,而数组名(包括其引用)不能作为左值,这是不符合语法规则的。无论想什么办法也无济于事。 再说得深入点,其实引用从根本上讲,也是通过指针实现的。你可以把引用理解为“指针常量”--可以通过指针修改它所指向的对象,但不能修改指针使其指向其它对象。 注意与“指向常量的指针”这个概念的区别! 如果你在某个地方定义了一个数组,那么当运行期间进行到此处时,系统将在栈上分配合乎要求的连续的字节,数组名代表的就是这片连续栈空间的首地址--这是一个常量!在该数组的生存期之内,你没有任何办法修改这个地址,因此,数组名,即数组所处的连续...

全国计算机等级考试2级C运行程序是Turbo C还是Visual C++6.0
网友vhblcd136说:Visual C++6.0 今年改了 C考试要求 基本要求 1.熟悉Visual C++ 6.0集成开发环境。 2.掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4.在Visual C++ 6.0集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。 考试内容 一、C语言程序的结构 1.程序的构成,main函数和其他函数。 2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。 3.源程序的书写格式。 4.C语言的风格。 二、数据类型及其运算 1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。 2.C...

请问一下,你的这编的程序中为什么(*a)[3]就对了,而*a[3]就对了呢,十分感谢您
网友NBYHFG说:看看这篇文档,你应该会明白。哈哈。 一个数组的元素值为指针则是指针数组。 指针数组是一组有序的指针的集合。 指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。指针数组说明的一般形式为: 类型说明符 *数组名[数组长度] 其中类型说明符为指针值所指向的变量的类型。例如: int *pa[3] 表示pa是一个指针数组,它有三个数组元素,每个元素值都是一个指针,指向整型变量。 【例10.33】通常可用一个指针数组来指向一个二维数组。指针数组中的每个元素被赋予二维数组每一行的首地址,因此也可理解为指向一个一维数组。 main(){ int a[3][3]={1,2,3,4,5,6,7,8,9}; int *pa[3]={a[0],a[1],a[2]}; int *p=a[0]; int i; fo...

计算机2级C语言解题
网友hzysb说:首先给出一个概念,数组就是指针,指针就是数组。若未理解先向下看,最后我再讲明。 (一)swap1(a,a+1); void swap1(int c0[],int c1[])函数的两个参数是两个未制定长度的数组,也可以看作两个指针。 再看程序体,可见swap1完成了c0[],c1[]两个指针指向的值c0[0]和c1[0]的交换。 而a,a+1是两个地址(即指针),分别指向a[0],a[1](规定数组名a为指向数组第一个元素的指针)。 执行swap1(a,a+1)时,a,a+1的值(就是a[0],a[1]的地址)复制到c0[],c1[]两个指针,此时c0[],c1[]两个指针分别指向a[0],a[1]。“swap1完成了c0[],c1[]两个指针指向的值的交换”,即a[0],a[1]的交换。 故a数组变为5,3 (二)swap2(&b[0],&b[1]); void swap2(int *c0,int *c1)函数...

c语言学习重点有哪些
网友wuxin1111314说:一、语法规则方面应注意的问题 1.书写标识符时,应注意大小写字母的区别。例: main( ) {int a=3; printf ( "%d ", A);} 学生在学习C语言之前可能已学习或使用了其他的高级语言,在这些高级语言中,有些并不区分变量名的大小写。但在C语言中则认为大写字母和小写字母是两个不同的字符,如上例中被认为a和A是两个不同的变量名,且并不一定显示出错信息,但往往得出错误的结果。习惯上,用预处理定义的符号常量名应大写,如:#define A 10,以增加可读性。 2. 分号的使用。分号是C语句中不可缺少的一部分,语句末尾必须有分号。对于复合语句来说,最后一条语句中的分号也不能忽略,但复合语句的花括号后面不应再加“;”,否则将会画蛇添足。改错时,有时在被指出有...

[辽宁科技大学]《计算机科学与工程》专升本考试大纲
网友曾炉柚克巳说:2008年辽宁科技大学《软件工程》专升本考试大纲 考试科目:数据库系统概论(70分)、 计算机网络(70分)、 C语言程序设计(60分) 考试时间:150分钟 总分:200分 第一部分 《数据库系统概论》考试大纲 一、数据库概论 1、掌握数据的模型; 2、掌握DB的体系结构; 3、掌握DBMS的功能;4、掌握DBS的组成。 二、关系模型 1、了解关系的基本术语; 2、掌握应用关系代数表达关系操作; 3、掌握应用关系演算表达关系操作; 4、了解查询优化; 5、熟练掌握关系代数的综合操作。 三、关系DBSQL语言 1、熟练掌握SQL表达查询; 2、掌握表的建立、更新;3、掌握视图的特性及使用。 四...

[辽宁科技大学]《计算机科学与工程》专升本考试大纲
网友gawe848573说:2008年辽宁科技大学《软件工程》专升本考试大纲考试科目:数据库系统概论(70分)、 计算机网络(70分)、 C语言程序设计(60分)考试时间:150分钟 总分:200分 第一部分 《数据库系统概论》考试大纲 一、数据库概论 1、掌握数据的模型; 2、掌握DB的体系结构; 3、掌握DBMS的功能;4、掌握DBS的组成。 二、关系模型 1、了解关系的基本术语; 2、掌握应用关系代数表达关系操作; 3、掌握应用关系演算表达关系操作; 4、了解查询优化; 5、熟练掌握关系代数的综合操作。 三、关系DBSQL语言 1、熟练掌握SQL表达查询; 2、掌握表的建立、更新;3、掌握视图的特性及使用。 四、关系DB模式设计 1、熟练掌握FD(函数依赖)的定义; 2、了解FD的闭包概念、掌握闭包的运算及实际意义; 3、掌握FD的推论规则; 4...