int a b c 1和int a b c 1哪个写法好,理由是什么

c语言编程 int *a和int a [ ]有区别吗?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
c语言编程 int *a和int a [ ]有区别吗?
int *a和int a [ ] 的区别,就等价于指针与数组的区别。指针与数组的区别:1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是&可变&,所以我们常用指针来操作动态内存。3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
采纳率:70%
4。不是有没有区别的问题。它们根本是在不同的情况下使用的。你可以用数组名表示数组第N个元素
*(a+(N-1))
你也可以定义 一个指针指向 第N个元素int *p=&a[N-1]; =======================================你所给的例子中使用是合法的 形参表示类型。int a[]表示一个整型数组int a[] 这样的定义是不符合语法的吧。除非 后面这样写int a[]={1,3;则是 指定义一个int 类型的指针 用来指向一个用来存放int型数据的地址,2。数组名 所表示的意思是 该数组起始地址,5};int *a
我所列的题目是不是可以int *a和int a[ ]都算正确写法?还是只能写int a[ ]
void fun(int a[], int n)这里的int a[]表示 一个数组类型的参数。void fun(int *a, int n)而 int *a则表示 一个指针类型的参数。你若是非得这么写 那么函数内部则应 使用*(a+N-1)的方式表示元素。不是说只能写 不能写的问题。要活用 一个问题编程解决方法肯定不止一种。指针 再理解理解。
本回答被提问者采纳
比如说吧,int a[100]一样。数组名就是指向数组首元素的指针;那么 a 就是 指向 a[0] 的指针
会分配一块存储N个int型数据的区域。int *a; 则不会 void fun(int a[], int n)
//函数传递数组参数时,要传递的是数组的地址,int a[]这不是地址void fun(int *a, int n)
//要这样写
int a [ ]是一个放int型数据用的数组int *a是一个int类型的指针
在C语言里,int a[]这种写法是错误的。中括号内必须有正整数值,表示数组中有多少个元素。int *a,是定义了一个指针变量叫a,这个a指向的内存单元中存放的是一个整数。int a[10],是定义了一个数组变量a,该变量占据10个整数的存储空间,存放了10个整数。
若你只写int *a,只是定义了一个指针还没有为数组分配空间,后面还要new空间而int a[]应该已经分配空间了
其他4条回答
为您推荐:
其他类似问题
c语言编程的相关知识
换一换
回答问题,赢新手礼包C++语言:int*a是什么定义啊?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
C++语言:int*a是什么定义啊?
void countValue(int *a,int *n)中的int *a,int *n是什么定义啊?有什么特别的目的啊?
是指针变量,简单来说,指针变量中是储存的变量地址,而不是变量的值。指针是C语言的精华部分,通过利用指针,我们能很好地利用内存资源,使其发挥最大的效率。有了指针技术,我们可以描述复杂的数据结构,对字符串的处理可以更灵活,对数组的处理更方便,使程序的书写简洁,高效,清爽。但由于指针对初学者来说,难于理解和掌握,需要一定的计算机硬件的知识做基础,这就需要多做多练,多上机动手,才能在实践中尽快掌握,成为C的高手。
电脑数码达人
int n),countValue(m,countValue(&m,&n),n),无论你怎么捣腾,m和n的值不会发生改变。指针是c和C++中的重点,m,n的值会改变,如果你调用的函数为void countValue(int a带*的叫做指针,它和int a的区别在于,举个例子,程序中有int m=3,int n=4;你调用该函数
本回答被提问者采纳
a n定义为整形的意思 整数时有效
这是定义指针变量,存储的是内存地址。详细的这里实在说不清楚,建议你多看看关于指针的介绍
int *a,int *n的含义是:指向整型变量的指针a,n。指针是C语言的一个重要内容,实际上就是指向一个内存地址。
int类型的指针,这里的两个都是该函数的参数,用于向函数传递数据
其他4条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包后使用快捷导航没有帐号?
查看: 3223|回复: 11
弱问:int *a与int &a,a的值分别是什么
中级战友, 积分 1441, 距离下一级还需 1559 积分
K币1271 元
在线时间370 小时
主题帖子积分
中级战友, 积分 1441, 距离下一级还需 1559 积分
中级战友, 积分 1441, 距离下一级还需 1559 积分
K币1271 元
我只知道int *a中a的值是一个指向int型数据的地址 那么int &a中的a又是什么呢
这是一段程序
#include &stdafx.h&
#include &stdio.h&
#include &malloc.h&
#define LISTSIZE 100
typedef struct{
int *//线性表的存储空间基址
//当前长度
//已分配空间
bool Init(SeqList &L){//这里有点看不懂
& & & & L.elem=(int *)malloc(LISTSIZE * sizeof(int));
& & & & if(!L.elem) printf(&分配失败/n&);
& & & & L.length=0;
& & & & L.listsize=LISTSIZE;
没有伞的孩子,必须努力奔跑
一般战友, 积分 275, 距离下一级还需 225 积分
在线时间36 小时
主题帖子积分
一般战友, 积分 275, 距离下一级还需 225 积分
一般战友, 积分 275, 距离下一级还需 225 积分
是C++ 里的引用操作吧
一般战友, 积分 275, 距离下一级还需 225 积分
在线时间36 小时
主题帖子积分
一般战友, 积分 275, 距离下一级还需 225 积分
一般战友, 积分 275, 距离下一级还需 225 积分
意思大概就是可以改变原值的参数传递,,,
中级战友, 积分 1171, 距离下一级还需 1829 积分
在线时间246 小时
主题帖子积分
中级战友, 积分 1171, 距离下一级还需 1829 积分
中级战友, 积分 1171, 距离下一级还需 1829 积分
是C++里的引用操作,在严蔚敏那本书的引言中有提到
一般战友, 积分 320, 距离下一级还需 180 积分
在线时间125 小时
主题帖子积分
一般战友, 积分 320, 距离下一级还需 180 积分
一般战友, 积分 320, 距离下一级还需 180 积分
int&&*a是指向整形的指针,而int &a实际上是一个整形变量的引用,只能用在函数调用中。
void test1(int *a)
void test2(int &b)
void test3(int c)
在调用时使用不同的参数类型。
void main()
& & int a=2,b=1,c=1;
& & test1(&a);
& & test2(b);
& & test3(c);
& & printf(&a=%d,b=%d,c=%d&,a,b,c);
输出结果都是a=1,b=2,c=1
楼主大概看出什么了吧,&是一个引用,在定义int &a时,实际参数传递时系统自动转换成地址传递给被调用函数,即变量的地址。而*a在参数传递时必须以地址作为参数,系统不会自己转换。
[ 本帖最后由 Hetiu 于
23:18 编辑 ]
一般战友, 积分 221, 距离下一级还需 279 积分
在线时间81 小时
主题帖子积分
一般战友, 积分 221, 距离下一级还需 279 积分
一般战友, 积分 221, 距离下一级还需 279 积分
不应该啊,值传递和址传递的区别
高级战友, 积分 4371, 距离下一级还需 3629 积分
K币3064 元
在线时间760 小时
主题帖子积分
高级战友, 积分 4371, 距离下一级还需 3629 积分
高级战友, 积分 4371, 距离下一级还需 3629 积分
K币3064 元
等你学了C++你就明白了 &在C++里有两种意思 一个是地址操作符 一个是声明引用符 用来引用一个变量 必须在声明引用时初始化
中级战友, 积分 1061, 距离下一级还需 1939 积分
K币1051 元
在线时间294 小时
主题帖子积分
中级战友, 积分 1061, 距离下一级还需 1939 积分
中级战友, 积分 1061, 距离下一级还需 1939 积分
K币1051 元
引用是C++中的概念,引用在做为普通变量被创建时必须初始化,一旦被初始化,就不能改变。但引用做为普通变量来使用是没什么意义的。引用的主要功能是传递函数的参数和返回值,比指针使用要安全些。
新手上路, 积分 16, 距离下一级还需 84 积分
在线时间5 小时
主题帖子积分
新手上路, 积分 16, 距离下一级还需 84 积分
新手上路, 积分 16, 距离下一级还需 84 积分
a&&是内存单元
*a 是取a里面的内容(a的值)
&a是取a的地址
非淡泊无以明志,
非宁静无以致远。
中级战友, 积分 612, 距离下一级还需 2388 积分
在线时间121 小时
主题帖子积分
中级战友, 积分 612, 距离下一级还需 2388 积分
中级战友, 积分 612, 距离下一级还需 2388 积分
不是 传递引用参数么?
您还剩5次免费下载资料的机会哦~
扫描二维码下载资料
使用手机端考研帮,进入扫一扫在“我”中打开扫一扫,扫描二维码下载资料
Powered by Discuz!问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在stackoverflow上问问题的时候有人提醒我(ch=getchar())!=EOF里ch应该定义为int类型,然后看见有人说char的范围在不同系统上可能是-128~127也可能是0~255。这我就不不懂了。。char一直以来都都是有符号的么?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
1: char 表示的范围缺省的char 要么是signed char ,要么是 unsigned char ,到底是哪一种,这取决于编译器。这意味着不同机器上的char 可能拥有不同的范围。所以只有当程序所使用的char值位于有符号和无符号的交集,程序才是可移植的
// 最好写 int
while( (ch = getchar()) != EOF )
在有符号机器上 程序可能正常运行在无符号机器上,程序异常,循环将永远不会终止EOF 为 int 类型,每次 ch 和 EOF 在比较时,都首先将ch 转换为
int类型进行比较
while( (ch = getchar()) != EOF )
当你输入-1时,ch = 0 将ch 提升为int
ch = 0x000000而 EOF 的值为 0xffffffff, 所以循环不会终止
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
signed char
unsigned char
是三个不同的类型,第一个不保证是否有符号,后面两个保证
getchar由于可能返回EOF,也就是-1,所以他的函数声明是int getchar(),你需要用int接受,手动判断是不是-1,不是的话可以安全转为char类型
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:int a和int a哪个写法好,理由是什么_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
int a和int a哪个写法好,理由是什么
我有更好的答案
那都一样,看习惯,只不过下面的两种中,“int a=1;int&b;int&哪个好?还是;哪个好?如果是问以上提到的;a=1:int&a;a=1;int&a,b;a你是不是想问:int&”不会因为忘了给a赋值导致代入计算时出现奇怪的错误
采纳率:83%
前面的好,理由是:我乐意
不都是一样的吗?
这,没有分别呢~~~
其他1条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包

我要回帖

更多关于 const int a 的文章

 

随机推荐